![](/img/trans.png)
[英]how can I assign the list with zeroes when number of elements is unknown to me
[英]How to dynamically assign an unknown number of list elements?
我有這個代碼,但它是 IF..ELIF..ELSE 的一個大功能塊。 有沒有辦法解包或動態分配兩個列表。 問題是,有時mylist
的元素可能少於 4 個。
輸入:
mylist=['1','2','3','4']
flag=['a','b','c','d']
輸出:如果mylist
只有 3 個元素,則為'a=1/b=2/c=3/d=4/'
或'a=1/b=2/c=3/'
類的字符串對象。
我目前的方法就像:
def myoutput(mylist, flag):
if flag=='3':
out = f'a={mylist[0]}/b={mylist[1]}/c={mylist[2]}/'
else:
out = f'a={mylist[0]}/b={mylist[1]}/c={mylist[2]}/d={mylist[3]}/'
return out
我試圖壓縮這兩個列表,但我不知道接下來的步驟,它並沒有真正起作用:
tag_vars={}
for i in range((zip(mylist,flag))):
tag_vars[f"mylist{i}"] = flag[i]
print(tag_vars)
我會按照以下方式使用zip
來完成這項任務
mylist=['1','2','3','4']
flag=['a','b','c','d']
out = ''.join(f'{f}={m}/' for f,m in zip(flag,mylist))
print(out)
輸出
a=1/b=2/c=3/d=4/
請注意,我將 f,m 與 zip 一起使用,因此 f 和 m 是 flag 和 mylist 中的對應元素。 免責聲明:此解決方案假定 flag 和 mylist 始終具有相同的長度。
您可以像這樣使用zip
:
for a, b in zip(alist, blist): ...
我修改了myoutput
函數以返回您想要的輸出
mylist=['1','2','3','4']
flag=['a','b','c','d']
def myoutput(mylist, flag):
result = []
for elem, f in zip(mylist, flag):
result.append(f"{f}={elem}")
return "/".join(result)
print(myoutput(mylist, flag)) # a=1/b=2/c=3/d=4
print(myoutput(mylist[:3], flag)) # a=1/b=2/c=3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.