gpt4 book ai didi

python - 替换 Python 字典中的值

转载 作者:行者123 更新时间:2023-11-28 21:48:18 26 4
gpt4 key购买 nike

我有 2 个文件,first只有 2 列

A   2
B 5
C 6

还有 second将字母作为第一列。

A  cat
B dog
C house

我想用第一个文件中对应的数字替换第二个文件中的字母,这样我就可以得到。

2  cat
5 dog
6 house

我从第一个创建了一个字典并读取了第二个。我尝试了几件事,但都没有用。我似乎无法替换这些值。

import csv
with open('filea.txt','rU') as f:
reader = csv.reader(f, delimiter="\t")
for i in reader:
print i[0] #reads only first column
a_data = (i[0])


dictList = []
with open('file2.txt', 'r') as d:
for line in d:
elements = line.rstrip().split("\t")[0:]
dictList.append(dict(zip(elements[::1], elements[0::1])))

for key, value in dictList.items():
if value == "A":
dictList[key] = "cat"

最佳答案

问题似乎出在您的最后几行:

for key, value in dictList.items():
if value == "A":
dictList[key] = "cat"

这应该是:

for key, value in dictList.items():
if key in a_data:
dictList[a_data[key]] = dictList[key]
del dictList[key]

d1 = {'A': 2, 'B': 5, 'C': 6}
d2 = {'A': 'cat', 'B': 'dog', 'C': 'house', 'D': 'car'}

for key, value in d2.items():
if key in d1:
d2[d1[key]] = d2[key]
del d2[key]

>>> d2
{2: 'cat', 5: 'dog', 6: 'house', 'D': 'car'}

请注意,此方法允许第二个字典中的项目没有第一个字典中的键。

以条件字典理解格式包装:

>>> {d1[k] if  k in d1 else k: d2[k] for k in d2}
{2: 'cat', 5: 'dog', 6: 'house', 'D': 'car'}

我相信这段代码会让你得到你想要的结果:

with open('filea.txt', 'rU') as f:
reader = csv.reader(f, delimiter="\t")
d1 = {}
for line in reader:
if line[1] != "":
d1[line[0]] = int(line[1])

with open('fileb.txt', 'rU') as f:
reader = csv.reader(f, delimiter="\t")
reader.next() # Skip header row.
d2 = {}
for line in reader:
d2[line[0]] = [float(i) for i in line[1:]]

d3 = {d1[k] if k in d1 else k: d2[k] for k in d2}

关于python - 替换 Python 字典中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35538665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com