相关疑难解决方法(0)

Python中的循环列表迭代器

我需要迭代一个循环列表,可能多次,每次从最后访问的项目开始.

用例是连接池.客户端请求连接,迭代器检查指向的连接是否可用并返回它,否则循环直到找到可用的连接.

有没有一种巧妙的方法在Python中做到这一点?

python iterator list

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

复制列表中的每个成员 - python

我想写一个复活列表的函数,[1,5,3,6,...][1,1,5,5,3,3,6,6,...] 想知道如何做到这一点?谢谢

python list

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

python列表中的重复元素

我有一个listPython:

l = ['a', 'c', 'e', 'b']
Run Code Online (Sandbox Code Playgroud)

我想立即复制原件旁边的每个元素.

ll = ['a', 'a', 'c', 'c', 'e', 'e', 'b', 'b']
Run Code Online (Sandbox Code Playgroud)

应保留元素的顺序.

python list-comprehension list

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

Python:通过为每个原始元素添加 n 个元素来扩展字符串列表

我有以下字符串列表:

l1 = ['one','two','three']
Run Code Online (Sandbox Code Playgroud)

我想获得一个列表,例如,这些相同的元素重复了n多次。如果n=3我得到:

l2 = ['one','one','one','two','two','two','three','three','three']
Run Code Online (Sandbox Code Playgroud)

我正在尝试的是这样的:

l2 = [3*i for i in l1]
Run Code Online (Sandbox Code Playgroud)

但我得到的是:

l2 = ['oneoneone','twotwotwo','threethreethree']
Run Code Online (Sandbox Code Playgroud)

如果我试试这个:

l2 = [3*(str(i)+",") for i in l1]
Run Code Online (Sandbox Code Playgroud)

我获得:

l2 = ['one,one,one','two,two,two','three,three,three']
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

python list-comprehension list

8
推荐指数
3
解决办法
406
查看次数

将列表自身扩展 N 次的最佳方法

所以我有一个列表[a,b,c]并且我想获取[a,b,c,a,b,c,...a,b,c].

我当然可以用两个嵌套循环来做到这一点,但一定有更好的方法吗?itertools.cycle()如果我能提供一个计数,这将是解决方案。

两个限制:

  1. 它应该在 2.7 中工作(但出于好奇,我对 3.x 解决方案感兴趣)
  2. 列表元素应该是独立的副本(它们是可变类型)

python list mutable python-2.7

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

元素出现两次的列表理解

假设我有列表

l = ['a', 'c', 'b']
Run Code Online (Sandbox Code Playgroud)

我想要的是一个列表,其中这些元素一个接一个出现两次,所以

['a', 'a', 'c', 'c', 'b', 'b']
Run Code Online (Sandbox Code Playgroud)

我想以最 Pythonic 的方式做到这一点。

我的一半解决方案是做类似的事情

[[l[i], l[i]] for i in range(len(l))]
Run Code Online (Sandbox Code Playgroud)

这产生

[['a', 'a'], ['c', 'c'], ['b', 'b']]
Run Code Online (Sandbox Code Playgroud)

从这里开始,我必须解析(遍历)列表以删除内部列表并获得单个平面列表。

有没有人有更好的主意一次性做到这一点?显然,像l * 2这样的事情无济于事['a', 'c', 'b', 'a', 'c', 'b'],我想要相邻的相同元素。

python list-comprehension list

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

如何使用itertools重复每个Python列表的元素n次?

我有一个数字列表: numbers = [1, 2, 3, 4].

我想有一个列表,他们重复这样的n时间(for n = 3):

[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4].

问题是我只想用itertools它,因为我的性能受到很大限制.

我试着用这个表达式:

list(itertools.chain.from_iterable(itertools.repeat(numbers, 3)))

但它给了我这样的结果:

[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

这显然不是我需要的.

有没有办法itertools只使用,而不使用排序,循环和列表推导?我能得到的最接近的是:

list(itertools.chain.from_iterable([itertools.repeat(i, 3) for i in numbers])),

但它也使用列表理解,我想避免.

python iteration performance list python-itertools

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

在python中重复列表N次?

我有一个列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我想重复一个列表n时间。
例如,如果n = 2我要[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]作为输出。

除了appendand forloop 外,python中是否有任何内置解决方案,因为的值也n可能高达1000?

python

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

复制列表中的元素

说我有这个

b = 3
l = [1, 2]
Run Code Online (Sandbox Code Playgroud)

我想修改l,以便每个元素出现的次数与b一样多.以便:

l = [1, 1, 1, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)

我用过这个:

for x in l:
  for m in range(b):
    l.append(x)
Run Code Online (Sandbox Code Playgroud)

但它导致了无限循环.任何帮助,将不胜感激.我希望你们给出想法而不是给我代码.谢谢.

python replication list

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

在列表X次数内重复列表

我正在研究一个项目,我需要在列表中重复一定次数的列表.显然,L.append(L)只是再次添加元素而不创建单独的列表.我只是对如何在大列表中分开列表感到困惑.

简而言之,这就是我所拥有的:

L = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

如果我想重复一遍,比如说3次,那么我有:

L = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?我正在寻找大名单中的列表.

提前致谢.

python list nested-lists

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

复制列表N次

我想将列表重复n次,同时保留列表本身的顺序。例如,我现在所拥有的一切都行不通,也没有给我一个错误。

def duplicate(testList, n):
    y = 0
    x = len(testList)
    newList=[]
    while y < x:
        for z in range (0, n):
            newList.append(testList[y])
        y = y + 1
    return newList

duplicate([1,2,3], 3)
Run Code Online (Sandbox Code Playgroud)

此后,我不确定在哪里修复它。

所需的输出是:

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

python python-2.7

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

使用列表理解重复二维数组中的条目

我有以下一段代码,目的是将 2D 列表的每个元素重复一定次数:

empty =[]
l = [[1,2,3], [4,5,6]]
n = [2,3]
for i, _as in enumerate(l):
    for _a in _as:
        for _n in range(n[i]):
            empty.append(_a)

empty
> [1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]
Run Code Online (Sandbox Code Playgroud)

我想尝试用单行列表理解格式来写这个。

我尝试使用以下方法:

empty = [
         [
           [_a]*n[i] for _a in _as
         ] 
         for i, _as in enumerate(l) 
        ]

empty
> [[[1, 1], [2, 2], [3, 3]], [[4, 4, 4], [5, 5, 5], [6, 6, 6]]]
Run Code Online (Sandbox Code Playgroud)

如何更正上述代码以提供所需的结果?

python list-comprehension list

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