簡體   English   中英

Python:如何將“”放在列表中的每個字符串上

[英]Python: how to put “ ” on every string from a list

我有一個 4 位數字的所有可能組合的列表,我想把它們放在 possible_comb = [...]

但是該列表沒有任何分隔符,例如逗號,並且每個 4 位數字沒有“..”。

例子:

#這是我的清單

list = [ 0000 0001 0002 0003...9999] # no (,) and (") 

#預期的

list = ["0000", "0001", "0002",..."9999"]

手動放置“和”是地獄般的。如何在列表中的每個字符串上放置“...”和?或者有沒有其他方法可以列出所有可能的 4 位數字並將其作為字符串放入列表中?謝謝。

您可以通過將整數轉換為字符串並使用zfill()填充零來使用列表推導式制作這樣的列表:

l = [str(n).zfill(4) for n in range(10000)]

l將是:

['0000',
 '0001',
 '0002',
 '0003',
 '0004',
 '0005',
 ...
 '9999'
 ]

根據您使用它的方式,使用生成器表達式可能會更好。

l = (str(n).zfill(4) for n in range(10000))

這有點 hacky,但它應該可以工作(假設x是你的輸入字符串,看起來像一個列表):

x = "[0000 0001 0002 0003]"
final_list = []
digit = ""

for i in x[1:]:
    if i.isdigit():
        digit += i
    else:
        final_list.append(digit)
        digit = ""

# print(final_list)

讓我知道事情的后續。

也許如果您想將 integer 轉換為字符串類型,那么這將完成這項工作:

 a = [ 0000 ,0001 ,0002, 0003,...9999]
 a = list(map(str,a))
 

您需要將列表中的所有整數轉換為字符串。 嘗試這個:

for i in list:
    list[i] = str(list[i])

或者,如果您想生成所有組合:

list = []
for i in range(10):
    for j in range(10):
        for k in range(10):
            for l in range(10):
                list.append(str(1000*i + 100*j + 10*k + l))

您可以使用 split 方法自動添加引號和逗號:

lst_str = str(your_list)
lst_final = lst.split(" ")
lst_final[0] = "0000"
lst_final[-1] = "9999"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM