我正在努力获取文件中的列表作为字典中的值。
我有这个.txt文件:
A,['♠8', '♥9', '♥D', '♥K']
B,['♣J', '♠10', '♥J', '♦K']
C,['♣K', '♦A', '♣A']
D,['♦9', '♠J', '♥A', '♦7']
E,['♣D', '♠A', '♥8']
F,['♦J', '♠K', '♦D', '♣9']
G,['♠7', '♣8', '♠D', '♦8']
H,['♣10', '♠9', '♥10', '♦10']
我希望第一个字母为键,下面的列表为值。
for line in file:
key=line[:1]
kort[key]=line[2:-1]
结果如下:
{'A': "['♠8', '♥9', '♥D', '♥K']", 'B': "['♣J', '♠10', '♥J', '♦K']", 'C': "['♣K', '♦A', '♣A']", 'D': "['♦9', '♠J', '♥A', '♦7']", 'E': "['♣D', '♠A', '♥8']", 'F': "['♦J', '♠K', '♦D', '♣9']", 'G': "['♠7', '♣8', '♠D', '♦8']", 'H': "['♣10', '♠9', '♥10', '♦10']"}
答案 0 :(得分:1)
您可以使用ast
和dict comprehension
来实现。
# Input
file = """A,['♠8', '♥9', '♥D', '♥K']
B,['♣J', '♠10', '♥J', '♦K']
C,['♣K', '♦A', '♣A']
D,['♦9', '♠J', '♥A', '♦7']
E,['♣D', '♠A', '♥8']
F,['♦J', '♠K', '♦D', '♣9']
G,['♠7', '♣8', '♠D', '♦8']
H,['♣10', '♠9', '♥10', '♦10']"""
# Main code
from ast import literal_eval as le
res = {line.split(",",1)[0]: le(line.split(",",1)[1]) for line in file.split("\n")}
# Output
print (res)
# {'A': ['♠8', '♥9', '♥D', '♥K'], 'B': ['♣J', '♠10', '♥J', '♦K'], 'C': ['♣K', '♦A', '♣A'], 'D': ['♦9', '♠J', '♥A', '♦7'], 'E': ['♣D', '♠A', '♥8'], 'F': ['♦J', '♠K', '♦D', '♣9'], 'G': ['♠7', '♣8', '♠D', '♦8'], 'H': ['♣10', '♠9', '♥10', '♦10']}
我希望这对您有所帮助!
答案 1 :(得分:0)
您必须将字符串传输到列表中。
import ast
data = "['♠8', '♥9', '♥D', '♥K']"
result = ast.literal_eval(data)
print(result)
这会给您['♠8', '♥9', '♥D', '♥K']
。