簡體   English   中英

將字符串列表轉換為元組

[英]converting a list of strings into a tuple

你好我想用Python做一本字典,需要做的是python讀取一個文本文件里面的值如下:

good    buono

我所做的是,用文件功能打開文件並替換選項卡並添加反轉的逗號以創建列表,使其看起來像

["('good', 'buono')", "('afternoon', 'pomeriggo')",... and so on

但問題是每個單詞翻譯的類型不是元組,當我試圖看第一個元素(數字0)時它是字符串它顯示我的值為

"('good', 'buono')"

這是一個字符串。 我需要使用dict公式,以便我可以將類型轉換為字典,但我不能,因為它是字符串列表(必須是元組列表)

那么如何將該字符串列表轉換為元組列表呢?

假設每對單詞都在文件的單獨行中,您可以這樣做:

mydict = {line.split()[0]: line.split()[1] for line in myfile}

這會轉換像這樣的文件

good    buono
afternoon   pomeriggo
thanks    grazie

{"good": "buono", "afternoon": "pomeriggo", "thanks": "grazie"}

沿途不需要元組。

.split()在空格上拆分輸入字符串,刪除任何前導/尾隨空格:

>>> "  good\tbuono  \n".split()
['good', 'buono']
with open('input.txt') as f:
     result = map(str.split, f)
     # -> [['good', 'buono'], ['afternoon', 'pomeriggo']]
     d = dict(result)
     # -> {'good': 'buono', 'afternoon': 'pomeriggo'}

ast會像@onemach建議的那樣工作,但你可能想要以元組的形式讀取字符串。

片段:

li = []
with open("file.txt", 'r') as f:
    li.append(tuple(f.readline().split('\t')))

這將分割關於選項卡的字符串,並將其放入元組對象,然后將其附加到列表中。

暫無
暫無

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

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