相关疑难解决方法(0)

在Python中创建一个包含列表推导的字典

我喜欢Python列表理解语法.

它也可以用来创建字典吗?例如,通过迭代成对的键和值:

mydict = {(k,v) for (k,v) in blah blah blah}  # doesn't work
Run Code Online (Sandbox Code Playgroud)

python dictionary list-comprehension dictionary-comprehension

1216
推荐指数
12
解决办法
80万
查看次数

如何使用列表中的键创建字典,并将值默认为(比方说)为零?

我有a = [1,2,3,4],我想要d = {1:0, 2:0, 3:0, 4:0}

d = dict(zip(q,[0 for x in range(0,len(q))]))
Run Code Online (Sandbox Code Playgroud)

工作,但很难看.什么是更干净的方式?

python dictionary

137
推荐指数
5
解决办法
17万
查看次数

如何在Python中初始化空列表字典?

我尝试以编程方式创建列表字典是不允许我单独地解决字典键.每当我创建列表字典并尝试附加到一个键时,所有这些都会更新.这是一个非常简单的测试用例:

data = {}
data = data.fromkeys(range(2),[])
data[1].append('hello')
print data
Run Code Online (Sandbox Code Playgroud)

实际结果: {0: ['hello'], 1: ['hello']}

预期结果: {0: [], 1: ['hello']}

这是有效的

data = {0:[],1:[]}
data[1].append('hello')
print data
Run Code Online (Sandbox Code Playgroud)

实际和预期结果: {0: [], 1: ['hello']}

为什么fromkeys方法不能按预期工作?

python dictionary list

77
推荐指数
3
解决办法
10万
查看次数

"列表理解"是什么意思?它是如何工作的,我该如何使用它?

我有以下代码:

[x ** 2 for x in range(10)]
Run Code Online (Sandbox Code Playgroud)

当我在Python Shell中运行它时,它返回:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Run Code Online (Sandbox Code Playgroud)

我搜索过,似乎这被称为列表理解,但它是如何工作的?

python list-comprehension list

46
推荐指数
4
解决办法
4792
查看次数

用键,两个列表中的值初始化dict

我看过这个链接

但是我如何初始化字典呢?

说两个清单

 keys = ['a','b','c','d'] 
 values = [1,2,3,4] 
 dict = {}
Run Code Online (Sandbox Code Playgroud)

我想dictkeys&初始化values

python dictionary key list

25
推荐指数
2
解决办法
2万
查看次数

创建一个包含来自另一个字典的特定键值对的Python字典

我有一些看起来像这样的代码:

d = {'foo': True, 'bar': 42, 'baz': '!'}

a = {'foo': d['foo'], 'bar': d['bar']}
b = {'foo': d['foo'], 'baz': d['baz']}
c = {'bar': d['bar'], 'baz': d['baz']}
Run Code Online (Sandbox Code Playgroud)

当然有更好的方式来表达这一点.我实际上阅读了文档,希望字典的copy方法接受键包含在新字典中:

# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')
Run Code Online (Sandbox Code Playgroud)

我可以为此目的编写一个函数:

copydict = lambda dct, *keys: {key: dct[key] for key in keys}

a = copydict(d, 'foo', 'bar')
b = copydict(d, 'foo', 'baz')
c = copydict(d, 'bar', 'baz')
Run Code Online (Sandbox Code Playgroud)

有没有比上面更好的解决方案?

python dictionary

7
推荐指数
1
解决办法
1万
查看次数

附加到列表的dict为每个键增加了价值

我有一个空列表字典,其中包含在开头声明的所有键:

>>> keys = ["k1", "k2", "k3"]
>>> d = dict.fromkeys(keys, [])
>>> d
{'k2': [], 'k3': [], 'k1': []}
Run Code Online (Sandbox Code Playgroud)

当我尝试将一个坐标对(列表["x1", "y1"])添加到其中一个键列表时,它会添加到所有键列表中:

>>> d["k1"].append(["x1", "y1"])
>>> d
{'k1': [['x1', 'y1']], 'k2': [['x1', 'y1']], 'k3': [['x1', 'y1']]}
Run Code Online (Sandbox Code Playgroud)

我在寻找的是:

>>> d
{'k1': [['x1', 'y1']], 'k3': [], 'k1': []}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Python 3中实现这一点?

python dictionary list python-3.x

7
推荐指数
1
解决办法
1123
查看次数

Python将列表转换为dict,每个键的值为1

我有:

somelist = ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

我希望这样,列表将转换为字典

somedict = {'a' : 1, 'b' : 1, 'c' : 1, 'd' : 1}
Run Code Online (Sandbox Code Playgroud)

所以我做了:

somedict = dict(zip(somelist, [1 for i in somelist]))
Run Code Online (Sandbox Code Playgroud)

它确实有效,但不确定它是否是最有效或最快速的方式

还有其他方法吗,最好是最简单的方法吗?

python

4
推荐指数
1
解决办法
113
查看次数

如何在Python 3.3中为所有键(在列表中给出)填充无字典

对于writerowcsv.DictWriter,我需要填写字典(的一部分)是空的.我发现没有立即解决方案.有吗?

喜欢

fieldnames = ['first','last']
Run Code Online (Sandbox Code Playgroud)

伪代码

row = fieldnames.fill(None)
Run Code Online (Sandbox Code Playgroud)

结果

print(row)
['first':None,'last':None]
Run Code Online (Sandbox Code Playgroud)

以便

destination.writerow(row)
Run Code Online (Sandbox Code Playgroud)

结果是

,
Run Code Online (Sandbox Code Playgroud)

python dictionary python-3.x

2
推荐指数
2
解决办法
3352
查看次数

Python:将空列表作为值添加到字典中

我想在name_input为空时追加一个空列表作为值,并且对于字典为grade_input为空,其字符为name_input.以下是代码段.但它似乎没有用.有什么建议?

if (name_input != '' and grade_input ==''):
        name_dic[name_input].append([])
Run Code Online (Sandbox Code Playgroud)

python dictionary list

1
推荐指数
1
解决办法
6990
查看次数

在python中将列表转换为字典

我经历了很多问题,却找不到我想要的东西.我有一个这样的列表: [2, 3, 5, 7, 11]
我想将它转换为格式的字典:即列表的值应该是键,每个相关的值应该为零. {2:0 , 3:0 , 5:0 , 7:0 , 11:0}

python dictionary list python-3.x

0
推荐指数
1
解决办法
3万
查看次数

有没有办法在python中从列表中获取键,将字典值初始化为0?

我有一个列表用作字典的键,并且对应于键的每个值都将初始化为0。

python dictionary

0
推荐指数
1
解决办法
2651
查看次数