![](/img/trans.png)
[英]Python: How to create for loop that change dict value and append it to the list?
[英]how to append a FOR loop value into a list
您好我正在嘗試將值附加到列表中,雖然這里有各種各樣的示例,但這是不同的我使用FOR循環將所有值都記錄到列表中,如果在“每個”中找到正確的名稱“我想將”each“附加到一個新列表中。 這是一個例子
for each in lines:
if names in each:
print(names)
print(each)
if len(newnames)<=3:
newnames.append((each))
elif len(newnames)>3:
newnames = newnames[:2]
print(newnames)
線條看起來像這樣
['alex | 7','jake | 10','jake | 2','jake | 5','josh | 3','josh | 5','josh | 7','megan | 6',' megan | 8','megan | 9']
名稱只是一個列表,每個名稱只有一個副本。 希望這是足夠的信息,讓你能夠找到答案,因為它讓我完全難過。
干杯。
如果只需要行中的名稱並使用字符串split()方法從行項目中拆分名稱。
例如
>>> names = set()
>>> l = ['alex|7', 'jake|10', 'jake|2', 'jake|5', 'josh|3', 'josh|5', 'josh|7', 'megan|6', 'megan|8', 'megan|9']
>>> for i in l:
... names.add(i.split("|")[0])
...
>>> print names
set(['josh', 'jake', 'alex', 'megan'])
>>>
Pythonic方式:
>>> l = ['alex|7', 'jake|10', 'jake|2', 'jake|5', 'josh|3', 'josh|5', 'josh|7', 'megan|6', 'megan|8', 'megan|9']
>>> set([i.split("|")[0] for i in l])
set(['josh', 'jake', 'alex', 'megan'])
>>>
我不確定我完全理解你的問題,但是如果我這樣做了,那么你想要做的是解析你的行列表中的字符串,然后檢查你的名字列表中是否出現了解析的名字。 如果是這樣,您希望將其附加到新列表。
如果您希望列表是唯一的,只需將其替換為set(和append with add),或者將result = set(result)
到程序的末尾。
無論如何,怎么樣:
result = []
for each in lines:
name = each.split('|')[0]
if name in names:
result.append(name)
print result
根據您的輸入列表,這將給出結果:
['alex', 'jake', 'jake', 'jake', 'josh', 'josh', 'josh', 'megan', 'megan', 'megan']
如果所有這些名字都在你的names
列表。 如果沒有,它只會附加該列表中的名稱。
我同意Vivek,我認為:
if names in each:
應該
if each in names:
它似乎也是將列表與列表元素進行比較。 通常你執行相反的比較。 您也不需要將值附加為元組,只需附加到列表即可。 看這個例子:
lines=['alex|7', 'jake|10', 'jake|2', 'jake|5', 'josh|3', 'josh|5', 'josh|7', 'megan|6', 'megan|8', 'megan|9']
names=[l.split('|')[0] for l in ['alex|7', 'jake|10', 'jake|2', 'jake|5', 'josh|3', 'josh|5', 'josh|7', 'megan|6', 'megan|8', 'megan|9']][:-4]
newnames=[]
for each in [l.split('|')[0] for l in lines]:
if each in names:
print(names)
print(each)
if len(newnames)<=3:
newnames.append(each)
elif len(newnames)>3:
newnames = newnames[:2]
print(newnames)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.