[英]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']
在這里我需要 output 因為列表由列表中的 5,6,7 組成,即
[5,6,7]
所以為此我嘗試如下,
s= []
for i in l:
e = i.split('/')`
s = e[3]
print(s)
當我在 for 循環內打印 s 時,我得到 output 但如果我在循環外打印 output 只是 7。請幫助我
使用列表理解僅在一行中嘗試此操作:
s = [i.split('/')[3] for i in l]
s
將包含您想要的 output。
您可以使用列表理解來執行此操作並獲取字符串……
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]
我在第二行中將列表理解拆分為多行,因為我們對值做了很多工作。 閱讀起來似乎更清晰。
您遇到的問題是因為您在循環中用e[3]
的值替換s
而不是將e[3]
附加到列表s
- 試試這個:
s= []
for i in l:
e = i.split('/')`
s.append(e[3]) # Note this change!
print(s)
雖然這應該按預期工作,但值得注意 Mehrdad Pedramfar 對這種提取的推導式的使用更好,盡管對於外行來說推導式可能難以閱讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.