![](/img/trans.png)
[英]How to get every possible list of substrings from a string in 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.