繁体   English   中英

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

[英]How to print out the elements in a list that begin with a certain letter

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

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

这是我使用过的代码。 有人可以看看是否有办法打印出仅以字母“A”开头的大陆?

使用startwith()

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

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

  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)

memory 上的 2 和 3 亮起 - 如果您有一个非常庞大的数据集,您可以使用它。 3 是写同一件事的一种功能性方式。

只需缩进if以使其位于循环内。 (因为我们希望for循环通过列表到 go 并检查每个元素是否以“A”开头)

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

  • output:
Asia
Africa
Antarctica
Australia

这样做:

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)

使用带有经过时间的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')

OutPut:-

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

在 for 循环中使用 if 语句:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM