以所需模式打印列表

2024-10-01 00:14:45 发布

您现在位置:Python中文网/ 问答频道 /正文

fruits = ["mango", "apple", "grapes", "kiwi", "peaches"]
color = ["yellow", "no color", "green", "no color", "orange"]
taste = ["sweet", "sweet1", "sweet2", "sweet3", "sweet4"]

这些是列表,我希望输出是-对于水果中的每个元素,如果它的颜色不是no color,那么打印它的颜色,否则打印它各自的味道。 输出-

[mango, yellow]
[apple, sweet1]
[grapes, green]
[kiwi, sweet3]
[orange, sweet4]

我尝试使用这段代码,但未能获得所需的输出

a = []
for i in fruits:
    a.append(i)
    for j in color:
        for k in taste:
            if j != "no color":
                a.append(j)
            else:
                a.append(k)
    print(a)
    print("\n")

Tags: noinappleforgreencolororangekiwi
3条回答

因为列表的长度相等,所以可以迭代索引

for i in range(len(fruits)):
    if color[i]=="no color":
        print([fruits[i], taste[i]])
    else:
        print([fruits[i], color[i]])

输出

['mango', 'yellow']
['apple', 'sweet1']
['grapes', 'green']
['kiwi', 'sweet3']
['peaches', 'orange']

您还可以使用列表理解:

[[fruits[i], taste[i]] if color[i]=='no color' 
                        else [fruits[i], color[i]] 
                        for i in range(len(fruits))]

我会尝试使用zip和列表理解。 基本上,代码经过简化/分解,同时使用zip遍历fruits, colors & tastes。我们检查当前的颜色是否等于no color,如果是这样,我们只将水果和味道添加到new。但如果我们能找到一种颜色,我们会直接添加水果和颜色

new = [[fruit,taste] if color == 'no color' else [fruit,color] for fruit,color,taste in zip(fruits,colors,tastes)] 

输出

[['mango', 'yellow'], ['apple', 'sweet1'], ['grapes', 'green'], ['kiwi', 'sweet3'], ['peaches', 'orange']]

您应该使用普通索引,而不是使用for循环进行循环

你可以试试:

output = []
for i in range(len(fruits)):
    fruit = fruits[i]
    if color[i] == 'no color':
        output.append((furit,taste[i]))
    else:
        output.append((fruit,color[i]))
print(output)

相关问题 更多 >