我有一个字符串列表列表,我想迭代每个子列表中的第二个索引。但是,不是评估每个字符串,而是评估每个字符串的每个字符......这就是我的意思:
当前代码:
fruit = [['bananna',"apple",'grape'],['ham',"sammy",'canada']]
for l in range(len(fruit)):
for i in fruit[l][1]:
print i
期望的输出:
苹果
sammy
电流输出:
一个
p
p
升
Ë
小号
一个
米
米
y
我真的想对每个字符串采取一些行动。在另一个列表中搜索该字符串,但现在它似乎正在评估我想要查看的字符串的每个字符而不是整个字符串...不确定为什么?
答案 0 :(得分:3)
你在做什么:
for l in range(len(fruit)): #you have the inner_loops in each iteration
for i in fruit[l][1]: # You already have what you want in fruit[l[1]
#you are now getting charcter by character from each value
应该做什么:
跳过一个循环。并且按值而不是索引迭代更加pythonic。
fruit = [['bananna',"apple",'grape'],['ham',"sammy",'canada']]
for l in fruit:
print l[1]
答案 1 :(得分:0)
<强>解决方案:强>
>>> for l in fruit:
... print(l[1])
...
apple
sammy
它有效,因为for
语句允许iterate over the elements of a list(不需要索引)。
原始问题:
1 fruit = [['bananna',"apple",'grape'],['ham',"sammy",'canada']]
2 for l in range(len(fruit)):
3 for i in fruit[l][1]:
4 print i
问题出在第3行:
fruit[l]
是其中一个子列表(例如['banana', 'apple', 'grape']
)。fruit[l][1]
是此列表中的第二项('apple'
)。for i in fruit[l][1]
iterates over the string('apple'
),它会接收每个角色。