标签: enumerate

Python:解压缩内部嵌套元组/列表,同时仍获取其索引号

我熟悉使用enumerate():

>>> seq_flat = ('A', 'B', 'C')
>>> for num, entry in enumerate(seq_flat):
        print num, entry
0 A
1 B
2 C
Run Code Online (Sandbox Code Playgroud)

我希望能够为嵌套列表做同样的事情:

>>> seq_nested = (('A', 'Apple'), ('B', 'Boat'), ('C', 'Cat'))
Run Code Online (Sandbox Code Playgroud)

我可以打开包装:

>>> for letter, word in seq_nested:
        print letter, word
A Apple
B Boat
C Cat
Run Code Online (Sandbox Code Playgroud)

我应该如何解压缩以获得以下信息?

0 A Apple
1 B Boat
2 C Cat
Run Code Online (Sandbox Code Playgroud)

我知道的唯一方法是使用计数器/增量器,据我所知,这是非Pythonic.有更优雅的方式吗?

python tuples list enumerate iterable-unpacking

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

只需要索引:枚举或(x)范围?

如果我只想在循环中使用索引,我应该更好地range/xrange结合使用该函数len()

a = [1,2,3]
for i in xrange(len(a)):
    print i 
Run Code Online (Sandbox Code Playgroud)

还是enumerate?即使我根本不使用p

for i,p in enumerate(a):
    print i    
Run Code Online (Sandbox Code Playgroud)

python enumerate range

28
推荐指数
3
解决办法
9322
查看次数

(Python)尽可能快地计算巨大(> 10GB)文件中的行

我现在有一个非常简单的脚本,它使用以下方法计算文本文件中的行enumerate():

i = 0
f = open("C:/Users/guest/Desktop/file.log", "r")
for i, line in enumerate(f):
      pass
print i + 1
f.close()
Run Code Online (Sandbox Code Playgroud)

这需要大约3分半钟才能完成大约3000万行的15GB日志文件.如果我能在两分钟或更短的时间内得到它,那将是很好的,因为这些是每日日志,我们想要进行每月分析,因此代码必须处理30个~15GB的日志 - 可能超过一个半小时,我们希望尽量减少服务器上的时间和内存负载.

我也会接受一个很好的近似/估计方法,但它需要大约4 sig fig准确...

谢谢!

python enumerate line-count

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

Python在Ruby中的枚举?

def enumerate(arr):
    (0..arr.length - 1).to_a.zip(arr)
Run Code Online (Sandbox Code Playgroud)

内置的东西是为了什么?它不需要让它的成员不可变,它只需要在标准库中.我不想成为继承Array类的人,为项目添加Python功能.

它在Ruby中有不同的名称吗?

%w(a b c).enumerate
=> [[0, "a"], [1, "b"], [2, "c"], [3, "d"]] 
Run Code Online (Sandbox Code Playgroud)

ruby python arrays enumerate

18
推荐指数
3
解决办法
6112
查看次数

Python只枚举反向索引

我试图扭转所给出的索引,enumerate同时保留列举的列表的原始顺序.

假设我有以下内容:

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

如果我列举这个,我会得到以下内容:

>> list(enumerate(range(5)))
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
Run Code Online (Sandbox Code Playgroud)

但是我想要反转枚举提供的索引,以便得到:

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

到目前为止,我有以下代码:

reversed(list(enumerate(reversed(range(5)))))
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有更简洁的方法来做到这一点?

python reverse enumerate python-3.x

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

Python枚举的奇怪行为

我知道我不应该在循环中修改列表,但出于好奇,我想知道为什么以下两个示例之间的迭代次数不同.

例1:

x = [1, 2, 3, 4, 5]
for i, s in enumerate(x):
    del x[0]
    print(i, s, x)
Run Code Online (Sandbox Code Playgroud)

例2:

x = [1,2,3,4,5]
for i, s in enumerate(x):
    x = [1]
    print(i, s, x)
Run Code Online (Sandbox Code Playgroud)

示例1仅运行3次,因为何时i==3,len(x)==2.

尽管示例2运行了5次len(x)==1.

所以我的问题是,是否在循环开始时enumerate生成完整的(index, value)对列表并迭代它?或者它们是在循环的每次迭代中生成的?

python iterator loops list enumerate

18
推荐指数
3
解决办法
3512
查看次数

Latex - 在枚举环境中跳过编号

我想跳过Latex枚举环境中的编号来生成列表,如下所示:

(1)第1项..

(2)第2项..

(5)第5项..

(6)第6项..

等等.

Latex代码是自动生成的,所以理想情况下,我想在环境中插入"silent"\ item-s,以便它们跟踪编号,但输出中不会出现任何内容.但是,如果我只是添加当前的空\项目,我会得到如下列表:

(1)第1项

(2)第2项

(3)

(4)

(5)第5项

(6)第6项

虽然空\ item-s方法是最理想的,但我非常欢迎任何其他方法来实现跳数.

提前致谢!

latex enumerate

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

Kotlin有像Python这样的"枚举"函数吗?

在Python中我可以写:

for i, element in enumerate(my_list):
    print i          # the index, starting from 0
    print element    # the list-element
Run Code Online (Sandbox Code Playgroud)

我怎么能在Kotlin写这个?

list enumerate kotlin

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

Python向下枚举或使用自定义步骤进行枚举

如何使Python的enumerate函数从较大的数字枚举到较小的数字(降序,递减,倒计时)?或者一般来说,如何使用不同的步进增量/减量enumerate

例如,应用于list的此函数['a', 'b', 'c']具有起始值10和步骤-2,将生成迭代器[(10, 'a'), (8, 'b'), (6, 'c')].

python enumerate

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

如何制作一个连续的字母列表python(从az然后从aa,ab,ac等)

我想为类似于excel工作表的应用程序制作一个按字母顺序排列的列表.

用户将输入多个单元格,我想生成列表.例如,用户需要54个单元格.然后我会生成

'a','b','c',...,'z','aa','ab','ac',...,'az','ba','bb'

我可以从[ref]生成列表

 from string import ascii_lowercase
 L = list(ascii_lowercase) 
Run Code Online (Sandbox Code Playgroud)

我如何将它拼接在一起?这里有一个类似的PHP问题.有人有python等价吗?

python excel enumerate

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