我有一个非常简单的列表:
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) 我有以下代码:
[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)
我搜索过,似乎这被称为列表理解,但它是如何工作的?
我正在尝试检查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) 我正在尝试创建一个元组列表,其中元组内容是列表中的数字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) 试图将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足够大,可以保持我最长的字符串.有没有办法在不事先知道你需要什么尺寸的字符串的情况下轻松完成这项工作?它似乎有点危险,它只是静静地截断你的字符串而不会抛出错误.
我遇到过一种(非常不寻常的)情况,我不得不使用一个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) 什么是使用的优势列表理解在forPython中循环?
主要是为了让它更具人性化,还是有其他理由使用列表理解而不是循环?
让我们假设以下简单的对象:
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)
会好的.有类似的东西吗?
我有成千上万个包含多个JSON对象的文本文件,但不幸的是,对象之间没有分隔符.对象存储为字典,其中一些字段本身就是对象.每个对象可能具有可变数量的嵌套对象.具体来说,对象可能如下所示:
{field1: {}, field2: "some value", field3: {}, ...}
Run Code Online (Sandbox Code Playgroud)
并且在文本文件中没有分隔符的情况下连接数百个这样的对象.这意味着我既不能使用json.load()也不能json.loads().
关于如何解决这个问题的任何建议.有没有一个已知的解析器来做到这一点?
python ×10
list ×4
dictionary ×2
python-3.x ×2
arrays ×1
find ×1
json ×1
numpy ×1
object ×1
python-2.7 ×1
search ×1
tuples ×1