[英]Convert this String to a List in Python
我是 Python 的新手,我嘗試將以下 txt 轉換為兩個列表,將 Country 與 Capital 分開。
Afghanistan | Kabul
Albania | Tirana
Algeria | Algiers
...
我試過了:
with open("/FILE.txt") as f:
lines = f.read().split("| ")
如果你有一個像 string="Kabul Albania" 這樣的字符串,那么使用 Split
a="Kabul Albania"
print(a.split(" ")) #OUTPUT WILL BE ['Kabul', 'Albania']
您正在將整個文件讀入一個大字符串,然后將其拆分為分隔符。 結果看起來像
lines = ['Afghanistan', 'Kabul\nAlbania', 'Tirana\nAlgeria', 'Algiers']
如果你想把文件分成幾行, splitlines
function 會這樣做。
with open("/FILE.txt") as f:
lines = f.read().splitlines()
但是如果你想把那個列表分成兩個列表,也許試試類似
countries = []
capitals = []
with open("/FILE.txt") as f:
for line in f:
country, capital = line.rstrip("\n").split(" | ")
countries.append(country)
capitals.append(capital)
更好的解決方案可能仍然是將值讀入字典。
capital = {}
with open("/FILE.txt") as f:
for line in f:
country, city = line.rstrip("\n").split(" | ")
capital[country] = city
順便說一句,你幾乎可以肯定不應該在你的操作系統的根目錄中有一個數據文件。 這個位置是為管理文件保留的(或者實際上,實際上,只是目錄樹層次結構的第一級)。
這應該可行,您的第一部分是正確的,只需要將結果添加到兩個不同的列表中
country = []
capitals = []
with open("FILE.txt", "r") as f:
for line in f:
result = line.strip().split("|")
country.append(result[0].strip())
capitals.append(result[1].strip())
print(country)
print(capitals)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.