相关疑难解决方法(0)

Python - 字典中的和值

我有一个非常简单的列表:

example_list = [
    {'points': 400, 'gold': 2480},
    {'points': 100, 'gold': 610},
    {'points': 100, 'gold': 620},
    {'points': 100, 'gold': 620}
]
Run Code Online (Sandbox Code Playgroud)

我如何总结所有黄金价值?我正在寻找漂亮的oneliner.

现在我正在使用此代码(但它不是最佳解决方案):

total_gold = 0
for item in example_list:
    total_gold += example_list["gold"]
Run Code Online (Sandbox Code Playgroud)

python dictionary list

52
推荐指数
4
解决办法
5万
查看次数

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

我有以下代码:

[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
查看次数

如果尚未存在,则将id添加到列表中

我正在尝试检查id是否在列表中,并且只有当它不在列表中时使用下面的代码才附加id ...然后我看到即使id已经存在于列表中,id也会被附加..任何人都可以提供有关错误的输入?

   list = ['350882 348521 350166\r\n']
    id = 348521
    if id not in list:
        list.append(id)
    print list

OUTPUT:-
['350882 348521 350166\r\n', 348521]
Run Code Online (Sandbox Code Playgroud)

python

36
推荐指数
5
解决办法
10万
查看次数

如果条件为真,则创建具有相邻列表元素的元组列表

我正在尝试创建一个元组列表,其中元组内容是列表中的数字9和数字.

输入清单:

myList = [1, 8, 9, 2, 4, 9, 6, 7, 9, 8]
Run Code Online (Sandbox Code Playgroud)

期望的输出:

sets = [(8, 9), (4, 9), (7, 9)]
Run Code Online (Sandbox Code Playgroud)

码:

sets = [list(zip(myList[i:i], myList[-1:])) for i in myList if i==9]
Run Code Online (Sandbox Code Playgroud)

目前的结果:

[[], [], []]
Run Code Online (Sandbox Code Playgroud)

python tuples list-comprehension list python-3.x

29
推荐指数
5
解决办法
3446
查看次数

在没有截断的情况下将int数组转换为numpy中的字符串数组

试图将int数组转换为numpy中的字符串数组

In [66]: a=array([0,33,4444522])
In [67]: a.astype(str)
Out[67]: 
array(['0', '3', '4'], 
      dtype='|S1')
Run Code Online (Sandbox Code Playgroud)

不是我的意图

In [68]: a.astype('S10')
Out[68]: 
array(['0', '33', '4444522'], 
      dtype='|S10')
Run Code Online (Sandbox Code Playgroud)

这可行,但我必须知道10足够大,可以保持我最长的字符串.有没有办法在不事先知道你需要什么尺寸的字符串的情况下轻松完成这项工作?它似乎有点危险,它只是静静地截断你的字符串而不会抛出错误.

python numpy

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

为什么Python 2.7中的dict定义比Python 3.x更快?

我遇到过一种(非常不寻常的)情况,我不得不使用一个map()或一个列表推导表达式.然后我想知道哪一个更快.

这个 StackOverflow答案为我提供了解决方案,但后来我开始自己测试.基本上结果是一样的,但是我在切换到Python 3时发现了一个意外的行为,我很好奇,即:

? iulian-pc ~ ? python --version
Python 2.7.6
? iulian-pc ~ ? python3 --version
Python 3.4.3

? iulian-pc ~ ? python -mtimeit '{}'                                                     
10000000 loops, best of 3: 0.0306 usec per loop
? iulian-pc ~ ? python3 -mtimeit '{}'                
10000000 loops, best of 3: 0.105 usec per loop

? iulian-pc ~ ? python -mtimeit 'dict()'
10000000 loops, best of 3: 0.103 usec per loop
? iulian-pc ~ ? python3 -mtimeit 'dict()'
10000000 loops, best …
Run Code Online (Sandbox Code Playgroud)

python dictionary python-2.7 python-3.x python-internals

25
推荐指数
3
解决办法
1801
查看次数

列表理解优于for循环的优势是什么?

什么是使用的优势列表理解forPython中循环?

主要是为了让它更具人性化,还是有其他理由使用列表理解而不是循环?

python list-comprehension

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

在python中的List中通过其成员查找对象

让我们假设以下简单的对象:

class Mock:
    def __init__(self, name, age):
        self.name = name
        self.age = age
Run Code Online (Sandbox Code Playgroud)

然后我有一个包含这样的对象的列表:

myList = [Mock("Dan", 34), Mock("Jack", 30), Mock("Oli", 23)...]
Run Code Online (Sandbox Code Playgroud)

是否有一些内置功能,我可以获得年龄为30岁的所有模拟?当然,我可以对自己进行迭代并比较它们的年龄,但类似于

find(myList, age=30)
Run Code Online (Sandbox Code Playgroud)

会好的.有类似的东西吗?

python search list find

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

如何记录列表中的所有元素

我有一个阵列

x = [1500, 1049.8, 34, 351, etc]
Run Code Online (Sandbox Code Playgroud)

如何获取整个数组的log_10()?

python arrays

20
推荐指数
5
解决办法
4万
查看次数

从文本文件中检索JSON对象(使用Python)

我有成千上万个包含多个JSON对象的文本文件,但不幸的是,对象之间没有分隔符.对象存储为字典,其中一些字段本身就是对象.每个对象可能具有可变数量的嵌套对象.具体来说,对象可能如下所示:

{field1: {}, field2: "some value", field3: {}, ...} 
Run Code Online (Sandbox Code Playgroud)

并且在文本文件中没有分隔符的情况下连接数百个这样的对象.这意味着我既不能使用json.load()也不能json.loads().

关于如何解决这个问题的任何建议.有没有一个已知的解析器来做到这一点?

python json object

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