如何打印列表中以某个字母开头的元素

时间:2020-05-25 13:15:18

标签: python list

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    print(continent)

if continent[0] == 'A':
    print(continent)

这是我使用的代码。有人可以看到是否有一种方法可以打印出仅以字母“ A”开头的大洲吗?

8 个答案:

答案 0 :(得分:5)

使用startswith()

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent.startswith('A'):
        print(continent)

答案 1 :(得分:3)

有很多方法可以做到这一点:

  1. 使用简单的列表理解:
[continent for continent in continents if continent.startswith('A')]
  1. 使用非常相似的生成器表达式:
(continent for continent in continents if continent.startswith('A'))
  1. 使用简单的过滤器表达式:
filter(lambda x: x.startswith('A'), continents)

2和3在内存中亮起-如果您的数据集确实很大,则可以使用它。 3是编写相同内容的功能方法。

答案 2 :(得分:2)

只需缩进if即可使其进入循环。 (因为我们希望for循环遍历列表,并检查每个元素是否以'A'开头)

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent[0] == 'A':
      print(continent)

答案 3 :(得分:1)

这样做:

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]

a_continents = [c for c in continents if c.startswith('A')]
# Or:
# a_continents = [c for c in continents if c and c[0] == 'A']

print(a_continents)

答案 4 :(得分:1)

使用while循环的代码具有经过的时间(代码执行任务所花费的时间)

from datetime import datetime

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
i = 0
continent = sorted(continents)
start_time = datetime.now().time().microsecond
while i < len(continent):
    if (continent[i][0] == 'A'):
        print(continent[i])
        i = i + 1
    else:
        break
end_time = datetime.now().time().microsecond
print('Time taken :', end_time - start_time, 'ms')

输出:-

Africa
Antarctica
Asia
Australia
Time taken : 45 ms

答案 5 :(得分:0)

  • 尝试这个
continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent[0] == 'A':
        print(continent)

  • 输出:
Asia
Africa
Antarctica
Australia

答案 6 :(得分:0)

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
aNamedContinents = c
    for c in continents:
        if c.startswith('A'):
            print(c)

答案 7 :(得分:-1)

在for循环内使用if语句:

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent[0] == 'A':
        print(continent)