如何从 python 中的 for 循环获取列表的值?
How to get a value of list from for loop in python?
我有清单:
l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
这里我需要输出,因为列表由列表中的 5,6,7 组成,即
[5,6,7]
为此,我尝试了如下所示,
s= []
for i in l:
e = i.split('/')`
s = e[3]
print(s)
当我在 for 循环内打印 s 时,我得到了输出,但如果我在循环外打印,输出只是 7。请帮帮我
尝试使用列表推导在一行中完成此操作:
s = [i.split('/')[3] for i in l]
s
将包含您想要的输出。
您可以使用列表理解来执行此操作并获取字符串……
l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
out_lst = [fname.split("/")[3] for fname in l]
print(out_lst)
# Output: [‘5’, ‘6’, ‘7’]
或者获取整数……
l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
out_lst = [int(fname.split("/")[3])
for fname in l]
print(out_lst)
# Output: [5, 6, 7]
我在第二个列表推导式中跨行拆分,因为我们对值做了很多工作。看起来更清晰了。
您遇到的问题是因为您在循环中 将 s
替换为 e[3]
的值,而不是附加 e[3]
到列表 s
- 试试这个:
s= []
for i in l:
e = i.split('/')`
s.append(e[3]) # Note this change!
print(s)
虽然这应该按预期工作,但值得注意的是 Mehrdad Pedramfar 对这种提取的理解更好,尽管对于外行的理解可能难以阅读。
我有清单:
l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
这里我需要输出,因为列表由列表中的 5,6,7 组成,即
[5,6,7]
为此,我尝试了如下所示,
s= []
for i in l:
e = i.split('/')`
s = e[3]
print(s)
当我在 for 循环内打印 s 时,我得到了输出,但如果我在循环外打印,输出只是 7。请帮帮我
尝试使用列表推导在一行中完成此操作:
s = [i.split('/')[3] for i in l]
s
将包含您想要的输出。
您可以使用列表理解来执行此操作并获取字符串……
l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
out_lst = [fname.split("/")[3] for fname in l]
print(out_lst)
# Output: [‘5’, ‘6’, ‘7’]
或者获取整数……
l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
out_lst = [int(fname.split("/")[3])
for fname in l]
print(out_lst)
# Output: [5, 6, 7]
我在第二个列表推导式中跨行拆分,因为我们对值做了很多工作。看起来更清晰了。
您遇到的问题是因为您在循环中 将 s
替换为 e[3]
的值,而不是附加 e[3]
到列表 s
- 试试这个:
s= []
for i in l:
e = i.split('/')`
s.append(e[3]) # Note this change!
print(s)
虽然这应该按预期工作,但值得注意的是 Mehrdad Pedramfar 对这种提取的理解更好,尽管对于外行的理解可能难以阅读。