簡體   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