python中,如何将列表中的一列数据和字典的key比较?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中,如何将列表中的一列数据和字典的key比较?相关的知识,希望对你有一定的参考价值。

比如我把txt里的东西制成一个列表,列表中line[0]的数据有些和字典里的key是相同的,我要如何比较两者把相同的key对应的值拿出来呢?

我利用异常处理,把不符合要求的key跳过不处理,剩下的都是相同key拿出来的,而且只用了一次循环哦!
#--encoding:utf-8--
#ListAndDic.py

list = [1, 4, 7]
dict = 1:11,2:22,4:44,8:88
result = []
for i in list:
try:
result.append(dict[i]) #如果key相同则存储,不同抛异常
except Exception,e:
print("不存在的key:"+str(e))
#do nothing
print(result)

# 不存在的key:7
# [11, 44]
参考技术A 假设那个字典叫dict:
if dict.has_key( line[0] ):
print dict[ line[0] ]

和列表一样,用[ ]即可本回答被提问者采纳
参考技术B 你这个问题太抽象。

将python字典写入CSV列:第一列的键,第二列的值

【中文标题】将python字典写入CSV列:第一列的键,第二列的值【英文标题】:Write python dictionary to CSV columns: keys to first column, values to second 【发布时间】:2014-09-06 07:42:48 【问题描述】:

我正在寻找一种将 python 字典写入列的方法(第一列中的键和第二列中的值)。这个link 展示了如何将列表写入列,但我想知道是否有一种方法可以在不将我的字典转换为两个压缩列表的情况下做到这一点。

myDict = 1:'a', 2:'b', 3:'c'

keyList = myDict.keys()
valueList = myDict.values()

rows = zip(keyList, valueList)

with open('test.csv', 'wb') as f:
    writer = csv.writer(f)
    for row in rows:
        writer.writerow(row)

想要的结果:

1;a
2;b
3;c

【问题讨论】:

【参考方案1】:

你可以简单地在 python 2.X 中做:

with open('test.csv', 'wb') as f:
    writer = csv.writer(f)
    for row in myDict.iteritems():
        writer.writerow(row)

对于python 3.X,将for循环行改为for row in myDict.items():

【讨论】:

【参考方案2】:

做一个稍微短一点的版本:

rows = myDict.iteritems()

(或.items() 用于 Python 3。)

要获得; 分隔符,请将delimiter 传递给csv.readercsv.writer。在这种情况下:

writer = csv.writer(f, delimiter=';')

【讨论】:

这将产生1;2;3\na;b;c,而不是所需的输出。 谢谢!我花了很长时间才找到合适的答案,你帮我找到了我的解决方案:with open('manifesttest2.csv', "wb") as f: writer = csv.writer(f, delimiter=',') writer.writerow(amazonData) @MichaelRomrell CSV 的读取器和写入器对象应默认使用, 作为分隔符(CSV 代表逗号分隔值)。不传参数能行吗?

以上是关于python中,如何将列表中的一列数据和字典的key比较?的主要内容,如果未能解决你的问题,请参考以下文章

Python如何将一个列表写入到一个excel表中的一列,求Python代码,谢啦!

pandas:如何将字典转换为转置数据框? [复制]

将python字典写入CSV列:第一列的键,第二列的值

如何使用 python 列表理解/字典将每一列打印为唯一变量

Python随笔7

python中元祖,列表,集合,字典的区别