[英]How to turn strings of numbers into nested lists in python
我需要將包含數字字符串的列表轉換為嵌套列表,每個字符串中的數字分隔成可以迭代的單個整數。 目前,我的代碼如下所示:
l = [
"400000,2003,2022,83,80,51,42",
"400001,2001,2023,61,46,90,75",
"400002,2003,2022,75,100,90",
"400003,2001,2021,74,54,76,92",
"400004,2000,2022,55,71,75,83",
"400005,2000,2023,84,85,78,50",
"400006,1999,2022,45,68,52,85",
]
new = str(l[1])
print(new)
new.split(",")
print(new)
output 看起來完全一樣,所以 .split 在這里似乎不起作用。 我需要它看起來像下面這樣,我可以在其中調用 l[0][1] 並將 2003 作為 int 獲取。 請不要使用 pandas 或其他導入庫,謝謝!
400000, 2003, 2022, 83, 80, 51, 42,
400001, 2001, 2023, 61, 46, 90, 75,
正如您所說,您可以拆分每一行並將字符串轉換為整數。
為此,您可以使用一個簡單的理解列表:
matrix = [list(map(int, line.split(","))) for line in l]
結果將是:
[[400000, 2003, 2022, 83, 80, 51, 42],
[400001, 2001, 2023, 61, 46, 90, 75],
[400002, 2003, 2022, 75, 100, 90],
[400003, 2001, 2021, 74, 54, 76, 92],
[400004, 2000, 2022, 55, 71, 75, 83],
[400005, 2000, 2023, 84, 85, 78, 50],
[400006, 1999, 2022, 45, 68, 52, 85]]
這個理解列表可以轉換為經典for
循環,如下所示:
matrix = []
for line in l:
matrix.append(list(map(int, line.split(","))))
l = [eval(s) for s in l]
print(l)
Output:
C:\tmp>python x.py
[(400000, 2003, 2022, 83, 80, 51, 42), (400001, 2001, 2023, 61, 46, 90, 75), (400002, 2003, 2022, 75, 100, 90), (400003, 2001, 2021, 74, 54, 76, 92), (400004, 2000, 2022, 55, 71, 75, 83), (400005, 2000, 2023, 84, 85, 78, 50), (400006, 1999, 2022, 45, 68, 52, 85)]
您需要分配new.split(',')
一個值。 這將解決它:
new_list = [a.split(',') for a in l]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.