如何选择Python列表中所有项目的第一个字母?

2024-05-16 01:49:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,需要生成一些代码,循环遍历名为“list_1”的列表变量中的所有元素,并打印以字母“p”开头的每个元素

list_1 = ['albania','portugal','pakistan','moldova','chile','brazil','paraguay','canada',
          'panama','indonesia','philippines','new zealand','palestine','papua new guinea']

for i in range(len(list_1)):
    if(left(i[0])=='p'):
        print i

这是我处理过的最好的一个错误(“NameError:name'left'未定义”)

对不起,如果这是一个愚蠢的问题,但我想每个人都必须从某个地方开始

非常感谢


Tags: 代码元素列表new字母leftlistbrazil
3条回答

有两种选择。可以使用.startswith(),也可以使用索引。如果需要区分大小写,只需删除.lower()

方法1

list_1 = ['albania','portugal','pakistan','moldova','chile','brazil','paraguay','canada',
          'panama','indonesia','philippines','new zealand','palestine','papua new guinea']

list_2=[word for word in list_1 if word.lower().startswith('p')]

方法2

list_1 = ['albania','portugal','pakistan','moldova','chile','brazil','paraguay','canada',
          'panama','indonesia','philippines','new zealand','palestine','papua new guinea']

list_2=[word for word in list_1 if word.lower()[0]=='p']

如果您不想理解列表,可以执行以下操作

for j in list_1:
    if j.startswith.lower('p'): #== or simply j.lower()[0]=='p':
        print(j)

试试这个:

for i in list_1:
    if i.startswith('p'): print(i) # works for empty strings too

对于范围内的i(len(list_1))请不要,仅对于list_1中的i

在Python中,您可以直接迭代元素,因此不需要计算列表的大小

 for element in list_1:
     if element[0] == 'p':
         print(element)

相关问题 更多 >