相关疑难解决方法(0)

在嵌套列表上列出理解?

我有这个嵌套列表:

l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']]
Run Code Online (Sandbox Code Playgroud)

现在,我想要做的是将列表中的每个元素转换为float.我的解决方案是:

newList = []
for x in l:
  for y in x:
    newList.append(float(y))
Run Code Online (Sandbox Code Playgroud)

但这可以使用嵌套列表理解来完成,对吗?

我所做的是:

[float(y) for y in x for x in l]
Run Code Online (Sandbox Code Playgroud)

但结果是一堆100的总和2400.

任何解决方案,将非常感谢解释.谢谢!

python nested list-comprehension list

194
推荐指数
6
解决办法
14万
查看次数

如何访问嵌套列表中的元组元素

我有一个包含嵌套列表的列表,其中包含元组.该列表如下所示:

428 [(' whether', None), (' mated', None), (' rooster', None), ('', None)]
429 [(' produced', None), (' without', None), (' rooster', None), (' infertile', None), ('', None)]
Run Code Online (Sandbox Code Playgroud)

我希望能够按索引值访问元组的"None"元素.我想创建一个具有相同索引值的新列表,如下所示:

428 [(None, None, None, None)]
429 [(None, None, None, None, None)]
Run Code Online (Sandbox Code Playgroud)

我真的不在乎"无"的类型.我只想将它们作为一个单独的列表.

我已经尝试过列表推导,但我只能自己检索元组,而不是里面的元素.

任何帮助,将不胜感激.

python tuples list

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

在Python 2.7中使用嵌套的生成器表达式

在appengine应用程序中,我想为对象列表构建一组所有属性名称.这应该是相当简单的:

users = security.User.all().fetch(1000)
props = set([k for k in u.properties().keys() for u in users])
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码会导致错误:

File "/Users/paulkorzhyk/Projects/appengine-flask-template/app/app.py", line 70, in allusers
props = set([k for k in u.properties().keys() for u in users])
UnboundLocalError: local variable 'u' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

在调试器中进行了一些实验后,我注意到添加虚拟表达式修复了代码:

users = security.User.all().fetch(1000)
[u.properties().keys() for u in users]
props = set([k for k in u.properties().keys() for u in users])
Run Code Online (Sandbox Code Playgroud)

这对我来说非常违反直觉,为什么原始版本在Python 2.7中失败?为什么在中间添加一个"无用的"表达式来修复问题?

python google-app-engine

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

了解使用嵌套循环创建二维列表

嵌套 for 循环(在本例中为双 for 循环)如何创建 2D 列表。

例如,我想要一个 2x2 矩阵,每个元素都用 0 进行初始化。

我懂了:

x = [[0 for i in range(row)] for j in range(col)]
Run Code Online (Sandbox Code Playgroud)

其中 row 定义为矩阵中的行数,col 定义为矩阵中的列数。在本例中,行 = 2,列 = 2。

当我们打印 x 时:

print(x)
Run Code Online (Sandbox Code Playgroud)

我们将得到:

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

这就是我们想要的。

这背后的逻辑是什么?是[0 for i in range(row)]说,对于指定行号范围内的每个元素,我们将分配一个 0 来有效地创建矩阵中的第一行?

那么for j in range(col)是不是说我们根据指定的列号重复创建这个列表,以有效地创建更多的行,这些行最终成为列?

我应该如何从左到右阅读这段代码片段?

python list matrix

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

列表理解中的语句顺序

在python2.7中,我试图将字符串列表中的每个项目添加到另一个项目中(例如,在列表['b','c']中的每个项目之前添加项目'a').从如何在列表推导中添加列表列表,我已经确定了正确的命令,其归结为:

>>> [i for x in ['b', 'c'] for i in ['a', x]]
['a', 'b', 'a', 'c']
Run Code Online (Sandbox Code Playgroud)

纯粹基于临时i和x变量,下面的版本似乎更具可读性.但是,它给出了完全不同的结果.为什么这不会给出相同的结果?

>>> [i for i in ['a', x] for x in ['b', 'c']]
['a', 'a', 'c', 'c']
Run Code Online (Sandbox Code Playgroud)

更奇怪的是,'b'条目发生了什么?

python list-comprehension python-2.7

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

如何在Python中嵌套列表推导

我正在尝试使用列表理解从2个列表中创建一个新列表

>>> l = ['%sdummy1', '%sdummy2']
>>> z = ['new1', 'new2']
Run Code Online (Sandbox Code Playgroud)

有了基本的列表理解知识,我可以获得以下列表

>>> x = [item % 'new1' for item in l]
['new1dummy1', 'new1dummy2']
>>>
Run Code Online (Sandbox Code Playgroud)

但是我如何遍历“ z”并获得下面的列表?

['new1dummy1', 'new1dummy2', 'new2dummy1', 'new2dummy2']
Run Code Online (Sandbox Code Playgroud)

python

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