相关疑难解决方法(0)

返回列表中大于某个值的项目列表

我有以下清单

j=[4,5,6,7,1,3,7,5]
Run Code Online (Sandbox Code Playgroud)

返回[5,5,6,7,7]j大于或等于5的元素的最简单方法是什么?

python

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

将函数应用于列表的每个元素

如何将函数应用于变量输入列表?例如,filter函数返回true值,但不返回函数的实际输出.

from string import upper
mylis=['this is test', 'another test']

filter(upper, mylis)
['this is test', 'another test']
Run Code Online (Sandbox Code Playgroud)

预期的产出是:

['THIS IS TEST', 'ANOTHER TEST']
Run Code Online (Sandbox Code Playgroud)

我知道upper是内置的.这只是一个例子.

python function list

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

为什么我不能在同一数据上迭代两次?

老实说,我在这里有点困惑,为什么我不能在相同的数据上迭代两次?

def _view(self,dbName):
    db = self.dictDatabases[dbName]
    data = db[3]

    for row in data:
        print("doing this one time")

    for row in data:
        print("doing this two times")
Run Code Online (Sandbox Code Playgroud)

这将打印出"一次这样做"几次(因为数据有几行),但它根本不会打印出"这样做两次"......

我第一次迭代数据工作正常,但第二次当我运行最后一个列表"for data in data"时,这没有返回...所以执行它一次工作但不是两次......?

仅供参考 - 数据是一个csv.reader对象(如果是这样的原因)......

python

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

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

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

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

python list-comprehension

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

为什么在python中调用list comprehension?

请不要燃烧,要求作为社区维基,所以没有人在这里获得声誉.我知道python不是第一种具有列表理解能力的语言.我只是对这个名字的历史感兴趣.

我特别感兴趣的是为什么它被称为理解

python list-comprehension naming-conventions

14
推荐指数
3
解决办法
1703
查看次数

如何压缩python列表的列表理解工作?

我最近寻找一种方法来展平嵌套的python列表,如下所示:[[1,2,3],[4,5,6]],这个:[1,2,3,4,5,6] .

Stackoverflow一如既往地有用,我找到了一篇具有这种巧妙的列表理解的帖子:

l = [[1,2,3],[4,5,6]]
flattened_l = [item for sublist in l for item in sublist]
Run Code Online (Sandbox Code Playgroud)

我以为我理解列表理解是如何工作的,但显然我没有得到最微妙的想法.最让我困惑的是,除了上面的理解之外,这也会运行(尽管它没有给出相同的结果):

exactly_the_same_as_l = [item for item in sublist for sublist in l]
Run Code Online (Sandbox Code Playgroud)

有人能解释一下python如何解释这些东西吗?基于第二个扩展,我希望python将它解释回来,但显然并非总是如此.如果是,第一个理解应该抛出一个错误,因为'sublist'不存在.我的思绪完全扭曲,帮助!

python list-comprehension

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

如何找到二维数组中每一行的最大值?

例如,我有这个二维数组:

[
    [
     0.0,
     0.24320757858085434,
     0.14893361727523413,
     0.29786723455046826,
     0.18838778030301612,
     0.12160378929042717
    ],
    [
     0.23717478210768014,
     0.0,
     0.16770789675478251,
     0.20539938644228997,
     0.25981195646349819,
     0.1299059782317491
    ],
    [
     0.21681956134183847,
     0.250361664212574,
     0.0,
     0.23178986094050727,
     0.16390018248131957,
     0.13712873102376066
    ],
    [
     0.2933749527592357,
     0.20744741852633861,
     0.15681550844086434,
     0.0,
     0.18554661183269694,
     0.15681550844086434
    ],
    [
     0.20305810393286577,
     0.28716752453162431,
     0.12135042758887897,
     0.20305810393286577,
     0.0,
     0.18536584001376513
    ],
    [
     0.17877693623386351,
     0.19584032147389943,
     0.13848001934394774,
     0.23407395508684939,
     0.25282876786143976,
     0.0
    ]
]
Run Code Online (Sandbox Code Playgroud)

它给出了概率集。如何找到每一行的最佳概率?还有什么方法可以在不改变元素位置的情况下找到例如第二、第三最佳概率?

python arrays numpy list python-2.7

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

如何在迭代另一个列表时填充新列表?

代码

#Variables
var1 = ['Warehouse Pencil 1.docx', 'Production Pen 20.docx']

list1 = []
for x in var1:
    splitted = x.split()
    a = [splitted[0] + ' ' + splitted[1]]
    list1.append(a)
    print(list1)
Run Code Online (Sandbox Code Playgroud)

输出

[['Warehouse Pencil']]
[['Warehouse Pencil'], ['Production Pen']]
Run Code Online (Sandbox Code Playgroud)

目标

我打算拆分列表,获取每个部分的第 1 个和第 2 个单词,然后将它们放入一个新列表中。

为什么我的输出给我一个奇怪的输出?我哪里错了?

期望输出

我想要的输出应该是这样的:

['Warehouse Pencil', 'Production Pen']
Run Code Online (Sandbox Code Playgroud)

抓取第 1 个和第 2 个单词并将它们放入 1 个列表中。

python string for-loop list python-3.x

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

在列表列表中反转浮点数

我有一个Markov转换表的输出,这是一个包含59个浮点数的59个列表的列表.我想反转每个非0浮点数,然后规范化输出,以便我再次列出一个概率列表,加起来为1.

我已经阅读了关于列表理解的教科书,这似乎是相关的,但我不能为我的生活理解如何实现它.

列表清单是 m

for i in range(59):
    [1/item for item in m[i] if item > 0.]
    i += 1
Run Code Online (Sandbox Code Playgroud)

这会运行,但不会改变m.我item在这段代码中使用错了吗?我应该使用其他参考吗?

python numpy nested-lists

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

如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。

假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y

y = x + 1

# Or it could be in a function:
def calc_y(an_x):
    return an_x + 1
Run Code Online (Sandbox Code Playgroud)

现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:

xs = [1, 3, 5]
for x in xs:
    y = x + 1
Run Code Online (Sandbox Code Playgroud)

while或者,如果有其他逻辑来计算值序列,我可以使用循环x

def next_collatz(value):
    if value % 2 == 0:
        return value // 2
    else:
        return 3 * value + 1

def collatz_from_19():
    x = 19
    while x != 1:
        x …
Run Code Online (Sandbox Code Playgroud)

python iteration list-comprehension

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