相关疑难解决方法(0)

如何在单个表达式中合并两个词典?

我有两个Python字典,我想编写一个返回这两个字典的表达式,合并.update()如果它返回结果而不是就地修改dict,那么该方法将是我需要的.

>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = x.update(y)
>>> print(z)
None
>>> x
{'a': 1, 'b': 10, 'c': 11}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得最终合并的词典z,不是x吗?

(要清楚的是,最后一次胜利的冲突处理dict.update()也是我正在寻找的.)

python merge dictionary

4349
推荐指数
41
解决办法
168万
查看次数

如何并行迭代两个列表?

我在Python中有两个迭代,我想成对地遍历它们:

foo = (1, 2, 3)
bar = (4, 5, 6)

for (f, b) in some_iterator(foo, bar):
    print "f: ", f, "; b: ", b
Run Code Online (Sandbox Code Playgroud)

它应该导致:

f: 1; b: 4
f: 2; b: 5
f: 3; b: 6
Run Code Online (Sandbox Code Playgroud)

一种方法是迭代索引:

for i in xrange(len(foo)):
    print "f: ", foo[i], "; b: ", b[i]
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎有点不合时宜.有没有更好的方法呢?

python iterator for-loop list

767
推荐指数
6
解决办法
58万
查看次数

Python:使用字典计算列表中的项目

我是Python的新手,我有一个简单的问题,比如我有一个项目列表:

['apple','red','apple','red','red','pear']
Run Code Online (Sandbox Code Playgroud)

什么是将列表项添加到字典中的最简单方法,并计算项目在列表中出现的次数.

所以对于上面的列表,我希望输出为:

{'apple': 2, 'red': 3, 'pear': 1}
Run Code Online (Sandbox Code Playgroud)

python

159
推荐指数
8
解决办法
20万
查看次数

如何将两个列表组合到Python中的字典中?

我有两个相同长度的列表:

[1,2,3,4][a,b,c,d]

我想创建一个我所拥有的字典 {1:a, 2:b, 3:c, 4:d}

最好的方法是什么?

python dictionary list

77
推荐指数
5
解决办法
9万
查看次数

在python脚本中读取tar文件内容而不解压缩它

我有一个tar文件,里面有多个文件.我需要编写一个python脚本,它将读取文件的内容并给出总字符数,包括字母总数,空格,换行符,所有内容,而不用解压缩tar文件.

python tar

72
推荐指数
3
解决办法
5万
查看次数

用键,两个列表中的值初始化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万
查看次数

zip迭代器在python中声明相等的长度

zip如果迭代的长度不相等,我正在寻找一个很好的方法来引发异常的几个迭代.

在迭代项是列表或具有len方法的情况下,此解决方案简洁明了:

def zip_equal(it1, it2):
    if len(it1) != len(it2):
        raise ValueError("Lengths of iterables are different")
    return zip(it1, it2)
Run Code Online (Sandbox Code Playgroud)

但是,如果it1it2是生成器,则前一个函数将失败,因为未定义长度TypeError: object of type 'generator' has no len().

我想这个itertools模块提供了一种简单的方法来实现它,但到目前为止我还没有找到它.我想出了这个自制的解决方案:

def zip_equal(it1, it2):
    exhausted = False
    while True:
        try:
            el1 = next(it1)
            if exhausted: # in a previous iteration it2 was exhausted but it1 still has elements
                raise ValueError("it1 and it2 have different lengths")
        except StopIteration:
            exhausted = True
            # it2 must …
Run Code Online (Sandbox Code Playgroud)

python python-itertools

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

如何制作两个元组来制作字典?

我的第一个想法是写一个interator,或者做一些列表理解.但是,就像我在python中编写的每个5-10行方法一样,有人通常可以指示我在标准库中调用来完成相同的操作.

我如何从两个元组xy一个字典z

x = ( 1, 2, 3 )
y = ( 'a', 'b', 'c')

z = { }
for index, value in enumerate(y):
    z[value] = x[index]

print z

# { 'a':1, 'b':2, 'c':3 }
Run Code Online (Sandbox Code Playgroud)

python dictionary tuples

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

如何在python中使用两个列表创建字典?

x = ['1', '2', '3', '4']
y = [[1,0],[2,0],[3,0],[4,]]
Run Code Online (Sandbox Code Playgroud)

我想创建一个字典,所以x和y值对应如下:

1: [1,0], 2: [2,0]
Run Code Online (Sandbox Code Playgroud)

等等

python dictionary list

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

Python:用密钥压缩字典

我有:

list_nums = [1,18]
list_chars = ['a','d']
Run Code Online (Sandbox Code Playgroud)

我想要:

list_num_chars = [{'num':1, 'char':'a'},
                  {'num':18, 'char':'d'}]
Run Code Online (Sandbox Code Playgroud)

是否有比以下更优雅的解决方案:

list_num_chars = [{'num':a, 'char':b} for a,b in zip(list_nums, list_chars)]
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×10

dictionary ×5

list ×4

for-loop ×1

iterator ×1

key ×1

merge ×1

python-itertools ×1

tar ×1

tuples ×1