- Списки и кортежи
- Создание списка
- Индексы
- Срезы
- Вставка элементов в список
- Другие методы списка
- Кортежи
- Создание кортежа
- “Добавление” элементов в кортеж
- Индексы и срезы
- Снова про изменяемость
- Ещё про списки
- Задачи
- Python-сообщество
- #1 Апрель 19, 2019 12:35:59
- Помогите с задачей.
- #2 Апрель 19, 2019 12:50:26
- Помогите с задачей.
- Python-сообщество
- #1 Апрель 19, 2019 12:35:59
- Помогите с задачей.
- #2 Апрель 19, 2019 12:50:26
- Помогите с задачей.
- Начал изучать ООП
- Заполнить массив нулями кроме первого и последнего элементов которые должны быть равны единице питон
Списки и кортежи
Список (list) – упорядоченная изменяемая коллекция элементов различных типов. Элементы в списке могут быть различных типов и менять состав элементов списка можно когда угодно и как угодно.
Создание списка
Чтобы использовать списки, их нужно сначала создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый (по которому можно пробежаться, используя цикл for ) объект (например, строку) встроенной функцией list() :
Или же использовать встроенный в питон литерал, с первого взгляда похожий на оператор []:
guests = ['Вася', 'Татуся', 'Пётр Яковлевич', 'мама'] # список строк digits = [1, 2, 3, 4, 5, 6, 7, 8, 9] # список чисел empty_list = [] # а этот список абсолютно пуст mixed_list = ['Вася', 45, True] # в одном списке могут храниться элементы разных типов matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # список списков
Как видно из примеров, список может содержать любое количество элементов любого типа или не содержать ничего.
Индексы
К элементам списка, как и к символам в строке можно обращаться по их индексам:
list_of_wishes = ['iPhone', 'MacBook', 'Свитшот'] print(list_of_wishes[1])
Если хочется получить самый последний элемент списка, то не придется считать сколько там всего элементов, можно использовать индекс -1 . -1 – это шорткат для len(list) — 1 .
print(list_of_wishes[-1]) print(list_of_wishes[-2])
Срезы
Если нужно выделить из списка/строки не один элемент, а сразу несколько, то нужно использовать срезы.
list_of_chars = list('студент') print(list_of_chars[1:]) # Взять все символы имени, кроме первого
Общий синтаксис срезов: list[START:END:STEP]
- Напишите программу, которая будет проверять является ли введённое пользователем слово палиндромом.
Вставка элементов в список
Самая частая операция после [] (получение элемента списка по индексу) это операция вставки чего-либо в список. Называется она .append() .
Только .append() это не отдельная функция, как например len() . Это так называемый метод списка. Смотрим как это работает:
list_of_wishes = [] # Список моих желаний, когда меня спрашивают, что я хочу на НГ list_of_wishes.append('iPhone 14') # После минутных раздумий print(list_of_wishes)
Другие методы списка
first = [1, 2, 3] second = [5, 6, 7] first.extend(second) print(len(first)) print(first)
Метод .extend() изменяет изначальный список first , а не создает новый. С этим нужно быть внимательными!
Создать новый список из двух старых поможет оператор +:
sweet = ['конфета', 'шоколадка'] salty = ['крекер', 'сухарик'] basket = sweet + salty print(basket)
Вот тут можно посмотреть все методы списков и что они делают.
Кортежи
Кортеж (tuple) – упорядоченная неизменяемая коллекция элементов различных типов.
Создание кортежа
tpl = tuple('student') tpl_2 = ('абитуриент', 'студент', 'аспирант', 'выпускник')
“Добавление” элементов в кортеж
Можно пользоваться оператором сложения.
Индексы и срезы
Работают так же как и со списками с точностью до изменяемости.
Снова про изменяемость
>>> a_list = [1, 2, 3] # список >>> a_tuple = (1, 2, 3) # кортеж >>> id(a_list) >>> id(a_tuple) >>> id_list_before = id(a_list) >>> id_tuple_before = id(a_tuple) >>> a_list.extend([3, 4]) >>> id_list_after = id(a_list) >>> id_tuple_after = id(a_tuple + (3, 4)) >>> id_list_after == id_list_before >>> id_tuple_after == id_tuple_before
- Попробуйте создать новый список с помощью оператора сложения и посмотреть, что будет с айдишнкиами. Почему так?
Ещё про списки
original_list = [1, 2, 3] new_list = original_list new_list.append(4) print(new_list) original_list = [1, 2, 3] new_list = original_list new_list.append(4) newnew_list = new_list newnew_list.append(5) print(new_list) print(newnew_list)
Вопрос: что выведет код ниже и почему?
print(original_list) print(id(original_list) == id(new_list))
Задачи
- Дан список некоторых целых чисел, найдите значение 20 в нем и, если оно присутствует, замените его на 200. Обновите список только при первом вхождении числа 20.
- Дан список чисел. Выведите значение наибольшего элемента в списке, а затем индекс этого элемента в списке. Если наибольших элементов несколько, выведите индекс первого из них.
- Заполнить список ста нулями, кроме первого и последнего элементов, которые должны быть равны единице.
- Сформировать возрастающий список из чётных чисел (количество элементов 45)
Python-сообщество
- Начало
- » Центр помощи
- » Помогите с задачей.
#1 Апрель 19, 2019 12:35:59
Помогите с задачей.
Заполнить массив нулями, кроме первого и последнего элементов, которые должны быть равны единице.
P.S Проблема с заменой первого элемента в массиве.
#2 Апрель 19, 2019 12:50:26
Помогите с задачей.
>>> lst = [0] * 50 >>> lst[0] = lst[-1] = 1 >>> lst [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] >>>
Python-сообщество
- Начало
- » Центр помощи
- » Помогите с задачей.
#1 Апрель 19, 2019 12:35:59
Помогите с задачей.
Заполнить массив нулями, кроме первого и последнего элементов, которые должны быть равны единице.
P.S Проблема с заменой первого элемента в массиве.
#2 Апрель 19, 2019 12:50:26
Помогите с задачей.
>>> lst = [0] * 50 >>> lst[0] = lst[-1] = 1 >>> lst [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] >>>
Начал изучать ООП
Условие задачи: 1 Заполнить массив нулями, кроме первого и последнего элементов, которые должны быть равны единице.
После С++ какое-то не привычное ООП. Помогите пожалуйста решить эту задачу с помощью ООП.
1 2 3 4 5 6 7 8 9 10 11 12
import random class Array: length = 10 def Fill_arr(self, length): self.length = length length = int(input("Укажите длину массива: ")) arr = [random.randint(0, 25) for _ in range(length)] print(arr) a = Array a.Fill_arr()
только начал изучать программирование
Можете объяснить разницу в коде 1. a= print(sum(a)) — вот этот вариант работает правильно 2.
Начал изучать библиотеку scikit-learn(skilearn), Ошибка
Всем общий. Я начал изучение библиотеки scikit-learn(skilearn), все это делаю на среде pycharm.
начал изучать с++
начал учить с++, мне порекомендовали купить "Полный справочник по С++" Герберта Шилдта , купил, но.
Ivan _pupkin, зачем делать поле в классе и передавать его еще в функцию? Для этого есть конструктор и нету проверки на последний и первый элемент
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
import random class Array: def __init__(self, length): self.length = length def fill_arr(self): arr = [] for i in range(self.length): if i != 0 and i != self.length-1: arr.append(random.randint(0, 25)) else: arr.append(0) return arr arr = Array(10).fill_arr() print(arr)
Resistanse, а можно сделать, чтобы длину массива , можно было вводить в методе?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class Array: def __init__(self, length): self.length = length def fill_arr(self): arr = [] for i in range(self.length): if i != 0 and i != self.length - 1: arr.append(0) else: arr.append(1) return arr length = int(input("Укажите длину массива: ")) arr = Array(length).fill_arr() print(arr)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#include "pch.h" #include #include using namespace std; class MyClass { int *arr, length; public: MyClass() { cout "Укажите длину массива: "; cin >> length; cout endl; this->arr = new int[length]; } void Fill_arr() { for (size_t i = 0; i length; i++) { arr[i] = 0; } arr[0] = 1; arr[length - 1] = 1; } void Show_arr() { for (size_t i = 0; i length; i++) { cout "arr[" i "]= " arr[i] endl; } } ~MyClass() { delete[] arr; arr = nullptr; } }; int main() { setlocale(LC_ALL, "rus"); MyClass a; a.Fill_arr(); a.Show_arr(); return 0; }
Заполнить массив нулями кроме первого и последнего элементов которые должны быть равны единице питон
Заполнить массив нулями, кроме первого и последнего элементов, которые должны быть равны единице.
P.S Проблема с заменой первого элемента в массиве.
>>> lst = [0] * 50 >>> lst[0] = lst[-1] = 1 >>> lst [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] >>>
This is a «lo-fi» version of our main content. To view the full version with more information, formatting and images, please click here.