标签: enumerate

'for i in range(1,len(a))的缩写:'在python中

在python中,有一种简短的写作方式for i in range(len(l)):吗?

我知道我可以使用for i,_ in enumerate(l):,但我想知道是否有另一种方式(没有_).

请不要说for v in l因为我需要索引(例如比较连续值l[i]==l[i+1]).

python iteration for-loop enumerate range

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

从嵌套在列表中的词典中读取

[
    {
        "wrong3": "Nope, also wrong",
        "question": "Example Question 1",
        "wrong1": "Incorrect answer",
        "wrong2": "Another wrong one",
        "answer": "Correct answer"
    },
    {
        "wrong3": "0",
        "question": "How many good Matrix movies are there?",
        "wrong1": "2",
        "wrong2": "3",
        "answer": "1"
    }
]
Run Code Online (Sandbox Code Playgroud)

目前我有一个文件加载一个充满两个列表的JSON文件(上图).每个项目都是由5个项目组成的字典.

我试图从两个列表中列出"问题"及其索引.现在我正在使用enumerate()这个,唯一的事情是它在"问题"中列出字符串的每个字符,而不是列出列表1中的"问题"和列表2中的问题.

这是代码:

import json
try:
    f = open('question.txt', 'r')
    questions = json.load(f)
    f.close()

except FileNotFoundError:
    print('NotFoundError \n')
    questions = {}

except ValueError:
    print('ValueError \n')
    questions = {}

except NameError:
    print('NameError \n')
    questions = {}


for i, v …
Run Code Online (Sandbox Code Playgroud)

python dictionary nested list enumerate

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

使用枚举的不同方式

我知道有效的基本方法enumerate,但是当你在for循环中有两个变量时它会有什么不同?我用counti以下实施例中

这段代码:

Letters = ['a', 'b', 'c']
for count, i in enumerate(Letters):
    print(count, i)
Run Code Online (Sandbox Code Playgroud)

还有这个:

Letters = ['a', 'b', 'c']
for i in enumerate(Letters):
    print(i)
Run Code Online (Sandbox Code Playgroud)

两者都给出相同的输出,这个:

>>>
    0 'a'
    1 'b'
    2 'c'
Run Code Online (Sandbox Code Playgroud)

是否在第一个例子的风格中编写代码在任何情况下都有益?有什么不同?如果你知道任何其他可能有用的方法,请告诉我,我正在尝试扩展我在python中的知识

python enumerate

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

python 打印字符串的前n行

我想知道如何在 python 中打印前 n 行字符串,这是我的代码:

for word, numbers in enumerate(sorted):
        print(word,':',numbers)
Run Code Online (Sandbox Code Playgroud)

输出如下所示。如何只打印这些字符串的前 10 行?我尝试使用范围,但它只打印 True 或 False...

0 : ('the', 1577)
1 : ('and', 1080)
2 : ('of', 761)
3 : ('to', 734)
4 : ('a', 720)
5 : ('in', 550)
6 : ('it', 451)
7 : ('was', 432)
8 : ('his', 405)
9 : ('he', 381)
10 : ('I', 365)
11 : ('Scrooge', 361)
12 : ('that', 346)
13 : ('with', 312)
14 : ('you', 254)
15 : ('as', …
Run Code Online (Sandbox Code Playgroud)

enumerate python-3.x

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

使用枚举在熊猫数据框中进行循环

我有一个基本数据框,它是来自不干净数据的组的结果:

 df:

Name1   Value1  Value2
A       10      30
B       40      50
Run Code Online (Sandbox Code Playgroud)

我创建了一个列表如下:

Segment_list = df['Name1'].unique()
Segment_list 

array(['A', 'B'], dtype=object)

Run Code Online (Sandbox Code Playgroud)

现在我想遍历列表并找到每次迭代的 Value1 中的数量,所以我使用:

for Segment_list in enumerate(Segment_list):
    print(df['Value1'])

Run Code Online (Sandbox Code Playgroud)

但是我得到了两个值而不是一个一个。我只需要一次迭代的一个值。这可能吗?

Expected output:

10
40
Run Code Online (Sandbox Code Playgroud)

python enumerate dataframe pandas

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

增加字典列表中的键值

我想在字典列表中添加一个 id 键,其中每个 id 代表枚举的嵌套字典。

当前字典列表:

current_list_d = [{'id': 0, 'name': 'Paco', 'age': 18} #all id's are 0
                  {'id': 0, 'name': 'John', 'age': 20}
                  {'id': 0, 'name': 'Claire', 'age': 22}]
Run Code Online (Sandbox Code Playgroud)

期望的输出:

output_list_d = [{'id': 1, 'name': 'Paco', 'age': 18} #id's are counted/enumerated
                  {'id': 2, 'name': 'John', 'age': 20}
                  {'id': 3, 'name': 'Claire', 'age': 22}]

Run Code Online (Sandbox Code Playgroud)

我的代码:

for d in current_list_d:
    d["id"]+=1
Run Code Online (Sandbox Code Playgroud)

python dictionary enumerate

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

枚举字符串而不是使用range()和len()进行迭代

我写了一个函数,它返回一个由第一个字符开头的新字符串.

因此,例如"Pizza"产生"Pza","Maogtbhdewr"产生"母亲".

此代码是range()len():

def string_skip(string):
    new_string = ""
    for n in range(0, len(string)):
        if n % 2 == 0:
            new_string += string[n]

    return new_string
Run Code Online (Sandbox Code Playgroud)

我的问题:有没有办法用pylint而不是enumerate()range()?(这是为了练习目的)

谢谢你的帮助.

python enumerate python-3.x

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

除了 zip(range(len())) 之外,还有更多 enumerate() 吗?

Python 中的一切都是有原因的。搭载Python的所有系统都依赖于类似50的内置功能,其中大部分是非常有用的,独特的,如format()len()list(),或range()我不明白为什么enumerate()存在

它已在PEP 279 (2002) 中引入并保留至今。我真的不明白它为什么存在,因为它可以使用更多 2-3 个字符的其他更重要的内置函数来完成。来自Python 文档

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
Run Code Online (Sandbox Code Playgroud)
for i in enumerate(seasons):
    print(i)
Run Code Online (Sandbox Code Playgroud)

使用更重要的内置函数的实现是这样的:

for i in zip(range(len(seasons)), seasons):
    print(i)
Run Code Online (Sandbox Code Playgroud)
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
Run Code Online (Sandbox Code Playgroud)

这两者是相同的,我们都知道它们的重要性zip()和重要性range()。那么为什么要添加一个内置函数,除了这两个函数之外,它似乎没有任何价值?

Python Docs 中,这里相当于enumerate()

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1 …
Run Code Online (Sandbox Code Playgroud)

python string list enumerate

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

使用enumerate选择列表的随机成员

让我们说mylist是70个元素的列表,我想从mylist中随机选择0,12,5个元素.我在"rand:"得到语法错误

rand = [0, 12, 5]
LL=[]
for x in enumerate(mylist) if i in rand:
        LL.append(x)        
Run Code Online (Sandbox Code Playgroud)

python enumerate

-2
推荐指数
1
解决办法
191
查看次数

如何从Python列表创建一个值:索引字典?

我有一个清单:

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

我想得到字典:

b = {'a':0, 'b':1, 'c':2}
Run Code Online (Sandbox Code Playgroud)

最Pythonic的方法是什么?

python dictionary list enumerate

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