簡體   English   中英

將此字符串轉換為 Python 中的列表

[英]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.

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