добавление нового списка из словаря - PullRequest
0 голосов
/ 30 апреля 2020

То, что я хочу из следующего кода, чтобы связать цвет (в новом списке) с указанным значением c, например: если значение равно A или A, цвет всегда должен быть красным, а штриховка должна быть "". я попробовал следующий код, он работает нормально, но когда я активирую "else:", чтобы добавить новые значения в списки, он возвращает длинный смешанный список.

может кто-нибудь мне помочь, пожалуйста

большое спасибо

dict1= {"A": ["red","."],"B": ["green","//"],"C": ["blue","o"],"D": ["Yellow","|"]}
name = ["g","B","c","d","a"]
color =[]
hatch=[]

for i in range(len(name)):
    for key, value in dict1.items():
        if name[i].upper() == key:
            name[i]=name[i].upper()
            color.append(value[0])
            hatch.append(value[1])
        # else:
        #     color.insert(i,"white")
        #     hatch.insert(i,"x")

print(name) # ['g', 'B', 'C', 'D', 'A']
print(color) # ['white','green', 'blue', 'Yellow', 'red']
print(hatch) # ['x','//', 'o', '|', '.']

1 Ответ

2 голосов
/ 30 апреля 2020

Вы использовали ненужный l oop для перебора словаря, который вызывал главную проблему

Следующий код работает:

dict1 = {"A": ["red", "."], "B": ["green", "//"], "C": ["blue", "o"], "D": ["Yellow", "|"]}
name = ["g", "B", "c", "d", "a"]
color = []
hatch = []

for i in range(len(name)):
    if name[i].upper() in dict1:
        key = name[i].upper()
        color.append(dict1[key][0])
        hatch.append(dict1[key][1])
    else:
        color.insert(i, "white")
        hatch.insert(i, "x")

print(name)  # ['g', 'B', 'C', 'D', 'A']
print(color)  # ['white','green', 'blue', 'Yellow', 'red']
print(hatch)  # ['x','//', 'o', '|', '.']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...