Как распечатать элементы списка, начинающиеся с определенной буквы - PullRequest
2 голосов
/ 25 мая 2020
continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    print(continent)

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

Это мой код, который я использовал. Может ли кто-нибудь увидеть, есть ли способ распечатать континенты, которые начинаются только с буквы «А»?

Ответы [ 7 ]

5 голосов
/ 25 мая 2020

Использовать startwith ()

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent.startswith('A'):
        print(continent)
3 голосов
/ 25 мая 2020

Есть много способов сделать это:

  1. Используйте простое понимание списка:
[continent for continent in continents if continent.startswith('A')]
Используйте очень похожее выражение генератора:
(continent for continent in continents if continent.startswith('A'))
Используйте простое выражение фильтра:
filter(lambda x: x.startswith('A'), continents)

2 и 3 светятся в памяти - вы можете использовать его, если у вас есть набор данных на самом деле огромный. 3 - это функциональный способ записать то же самое.

2 голосов
/ 25 мая 2020

просто сделайте отступ для if, чтобы он находился внутри l oop. (потому что мы хотим, чтобы от for l oop до go проходили через список и проверяли каждый элемент, если он начинается с 'A')

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent[0] == 'A':
      print(continent)
1 голос
/ 25 мая 2020

Код с использованием while l oop с истекшим временем (время, затраченное кодом на выполнение задачи)

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
1 голос
/ 25 мая 2020

Сделайте так:

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)
0 голосов
/ 25 мая 2020

Используйте оператор if внутри for l oop:

continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent[0] == 'A':
        print(continent)
0 голосов
/ 25 мая 2020
  • Попробуйте это
continents = [
    'Asia',
    'South America',
    'North America',
    'Africa',
    'Europe',
    'Antarctica',
    'Australia',
]
for continent in continents:
    if continent[0] == 'A':
        print(continent)

  • вывод:
Asia
Africa
Antarctica
Australia

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...