Заметки по Python (6): определение и использование списков

Python Технологии Nuggets призывают к публикации
Заметки по Python (6): определение и использование списков

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.

Привет всем, яодна чаша в неделю, передняя часть, которая не хочет быть пьяной (завернутой). Если написанной статье посчастливилось получить вашу благосклонность, мне очень повезло~

Определение и использование списков

В Питоне,Список — это структура данных, состоящая из ряда элементов в определенном порядке., то есть переменная типа list можетхранить несколько данныхможно повторить.

Список определений

  1. использовать[]Буквенный синтаксис для определения переменных с использованием запятых для нескольких элементов в списке,Для сегментации пример кода выглядит следующим образом:

    list1 = ["Hello", "一碗周", "你好"]
    list2 = [1, 2, 3, 4, 5]
    print(list1)  # ['Hello', '一碗周', '你好']
    print(list2)  # [1, 2, 3, 4,5]
    
  2. Используйте встроенный в PythonlistЗапрограммируйте другие последовательности в список, пример кода выглядит следующим образом:

    list1 = list(range(10))
    list2 = list("hello")
    print(list1)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(list2)  # ['h', 'e', 'l', 'l', 'o']
    

Список является переменным типом данных, то есть элементы списка могут быть изменены, что существенно отличается от строки, после изменения строкового типа будет возвращена новая строка.

получить доступ к значениям в списке

Если вы обращаетесь к значению в списке, используйте нижний индекс для доступа к значению в списке и используйте квадратные скобки для перехвата символов, таких как строки.Пример кода выглядит следующим образом:

list1 = ["Hello", "一碗周", "你好"]
# 列表的索引
print(list1[1])  # 一碗周
# 列表的切片
print(list1[1:3])  # ['一碗周', '你好']

оператор для списков

Как и строки, списки также поддерживают такие операции, как конкатенация, повторение и операции с членами.Пример кода выглядит следующим образом:

list1 = ["Hello"]
list2 = ["World"]
list3 = [1, 2, 3, 4, 5]
list4 = list(range(1, 6))

list5 = list1 + list2  # ['Hello', 'World']
print(list5)

list6 = list1 * 3  # ['Hello', 'Hello', 'Hello']
list7 = list3 * 2  # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(list6)
print(list7)

print("W" in list1)  # False
print("W" in list2)  # False

# 列表的比较运算
# 两个列表比较相等性比的是对应索引位置上的元素是否相等
print(list3 == list4)  # True
list8 = list(range(1, 7))
print(list3 == list8)  # False

перебор элементов списка

Обход списка аналогичен просмотру строки Пример кода выглядит следующим образом:

list1 = ["H", "e", "l", "l", "o"]
# 方法1
for index in range(len(list1)):
    print(list1[index])
# 方法2
for ch in list1:
    print(ch)

метод списка

Добавлять и удалять элементы

код напрямую

list1 = ["cute", "beautiful", "一碗周"]

# append()在列表尾部添加元素
list1.append("lovely")
print(list1)  # ['cute', 'beautiful', '一碗周', 'lovely']

# insert()在列表指定索引位置插入元素
list1.insert(2, "prefect")
print(list1)  # ['cute', 'beautiful', 'prefect', '一碗周', 'lovely']

# remove()删除指定元素
list1.remove("lovely")
print(list1)  # ['cute', 'beautiful', 'prefect', '一碗周']

# pop()删除指定索引位置的元素
list1.pop(2)
print(list1)  # ['cute', 'beautiful', '一碗周']

# clear()清空列表中的元素
list1.clear()
print(list1)  # []

Также доступно на PythondelКлючевое слово удаляет элементы списка, аналогичныеpop, образец кода ↓

list1 = ["cute", "beautiful", "甜甜"]

del list1[1]
print(list1) # ['cute', '甜甜']

# 删除整个列表
del list1
print(list1) # NameError: name 'list1' is not defined

положение элемента и количество

использоватьindex()Чтобы найти положение элемента, используйтеcount()для подсчета количества вхождений элемента

list1 = ["beautiful", "cute", "beautiful",
         'prefect', "beautiful", "一碗周", 'lovely']
# 查找"beautiful"第一次出现的位置
print(list1.index("beautiful"))  # 0
# 从第四个元素以后查找"beautiful"最近一次出现的位置
print(list1.index("beautiful", 3))  # 4

# 统计"beautiful"出现的次数
print(list1.count("beautiful"))  # 3

Сортировка элементов и инверсия

использоватьsort()метод может реализовать сортировку элементов списка, иreverse()Метод может реализовать инверсию элемента, пример кода↓

list1 = ["cute", "beautiful", "一碗周"]
list2 = list(range(10))

# 排序
list1.sort()
print(list1)  # ['beautiful', 'cute', '一碗周']

# 反转
list1.reverse()
print(list1)  # ['一碗周', 'cute', 'beautiful']

list2.reverse()
print(list2)  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

# 前面的操作原来的列表进行修改,如果不让原来的数据被破坏可以使用copy()备份一份
list3 = list2.copy()
list3.sort()
print(list2)  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(list3)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Суммировать

метод описывать параметр
append() добавить новый объект в конец списка Объект для добавления в конец списка.
insert() Используется для вставки указанного объекта в указанную позицию в списке index – позиция индекса, в которую необходимо вставить объект obj.
obj — объект для вставки в список.
remove() Функция используется для удаления первого вхождения значения в списке. Объект, который необходимо удалить из списка.
pop() Функция для удаления элемента в списке (последний элемент по умолчанию) Необязательный параметр, значение индекса удаляемого элемента списка не может превышать общую длину списка, значение по умолчанию — index=-1, а последнее значение списка удаляется.
clear() функция очистки списка никто
index() Используется для поиска позиции индекса первого вхождения значения в список. x -- искомый объект.
start -- необязательно, начальная позиция поиска.
end -- необязательно, конечная позиция поиска.
count() Используется для подсчета количества раз, когда элемент появляется в списке. Объекты учтены в списке.
sort() Используется для сортировки исходного списка ключ -- элемент, который в основном используется для сравнения
реверс -- сопоставление,reverse = Trueв порядке убывания,reverse = FalseПо возрастанию (по умолчанию)
reverse() Используется для реверсирования элементов в списке никто
copy() для копирования списков никто

Производство списка

Требование: как строка123и строкаABCСоздайте список декартовых произведений, пример кода выглядит следующим образом:

原始方法

a = "123"
b = "ABC"
list1 = []
for x in a:
     for y in b:
          list1.append(x + y)
print(list1) # ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C']

生成列方法

a = "123"
b = "ABC"
list1 = [x + y for x in a for y in b]
print(list1) # ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C']

Этот метод не только имеет меньше кода, но и имеет лучшую производительность, чем обычныйforпетля иappendспособ добавления

вложенный список

Поскольку переменные в списке могут хранить несколько типов данных, когда в списке есть список, это называется вложением списка.Пример кода выглядит следующим образом:

list1 = [["cute", "beautiful", "一碗周"], "cute", "beautiful", "一碗周"]

print(list1[0])  # ['cute', 'beautiful', '一碗周']
print(list1[1])  # cute

# 如果想要查看被嵌套的那个cute则需要使用多个索引值
print(list1[0][0])  # cute

То же самое верно независимо от того, сколько вложенных