• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

`*` iterable unpacking in Python variable assignment

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

☕

*Memos:


You can use * for iterable unpacking in a variable assignment as shown below:

*Memos:

  • A * is an iterable unpacking operator.
  • A *variable can store zero or more values as a list in a variable assignment.
  • Only one *variable can be used in each expression of the left side of a variable assignment.
  • Zero or more *iterables can be passed to a function with the zero or more values unpacked from zero or more iterables.

*v1, v2, v3 = [0, 1, 2, 3, 4]
*v1, v2, v3 = (0, 1, 2, 3, 4)
v1, v2, *v3 = [0, 1, 2, 3, 4]
v1, *v2, v3 = [0, 1, 2, 3, 4]
v1, *v2, v3 = [0, 1, 2, 3]
v1, *v2, v3 = [0, 1, 2]
v1, *v2, v3 = [0, 1]
# No error

*v1, v2, *v3 = [0, 1, 2, 3, 4]
# SyntaxError: multiple starred expressions in assignment

v1, *v2, v3 = [0]
# ValueError: not enough values to unpack (expected at least 2, got 1)

*v1, = []
*v1, = 5, # Tuple
*v1, = (5,)
# No error

*v1, = [0, 1, 2]
*v2 = *v1 # SyntaxError: can't use starred expression here
*v1 = [] # SyntaxError: starred assignment target must be in a list or tuple
*v1, = 5 # TypeError: cannot unpack non-iterable int object

*v1, v2, v3 = [0, 1, 2, 3, 4]
*v1, v2, v3 = (0, 1, 2, 3, 4)

print(v1, v2, v3) # [0, 1, 2] 3 4
print(*v1, v2, v3) # 0 1 2 3 4

v1, v2, *v3 = [0, 1, 2, 3, 4]

print(v1, v2, v3) # 0 1 [2, 3, 4]
print(v1, v2, *v3) # 0 1 2 3 4

v1, *v2, v3 = [0, 1, 2, 3, 4]

print(v1, v2, v3) # 0 [1, 2, 3] 4
print(v1, *v2, v3) # 0 1 2 3 4

v1, *v2, v3 = [0, 1, 2, 3]

print(v1, v2, v3) # 0 [1, 2] 3
print(v1, *v2, v3) # 0 1 2 3

v1, *v2, v3 = [0, 1, 2]

print(v1, v2, v3) # 0 [1] 2
print(v1, *v2, v3) # 0 1 2

v1, *v2, v3 = [0, 1]

print(v1, v2, v3) # 0 [] 1
print(v1, *v2, v3) # 0 1

*v1, = [0, 1, 2]

print(v1) # [0, 1, 2]
print(*v1) # 0 1 2

*v1, = []

print(v1) # []
print(*v1) # Nothing

*v1, = 5, # Tuple

print(v1) # [5]
print(*v1) # 5

*By default, only keys are assigned to variables from a dictrionary same as using

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

.


*v1, v2 = {'name":"John", "age":36, "gender":"Male"}
*v1, v2 = {"name":"John", "age":36, "gender":"Male"}.keys()

print(v1, v2) # ['name', 'age'] gender
print(*v1, v2) # name age gender

*

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

can get only the values from a dictionary.


*v1, v2 = {"name":"John", "age":36, "gender":"Male"}.values()

print(v1, v2) # ['John', 36] Male
print(*v1, v2) # John 36 Male

*

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

can get both the keys and values from a dictionary.


*v1, v2 = {"name":"John", "age":36, "gender":"Male"}.items()

print(v1, v2)
# [('name', 'John'), ('age', 36)] ('gender', 'Male')

print(*v1, v2)
# ('name', 'John') ('age', 36) ('gender', 'Male')

print(v1[0], v1[1], v2[0], v2[1])
# ('name', 'John') ('age', 36) gender Male

print(*v1[0], *v1[1], v2[0], v2[1])
# name John age 36 gender Male

v1, v2, *v3 = "Hello"

print(v1, v2, v3) # H e ['l', 'l', 'o']
print(v1, v2, *v3) # H e l l o

*Again, zero or more *iterables can be passed to a function with the zero or more values unpacked from zero or more iterables.


print(*[0, 1, 2])
print(*(0, 1, 2))
print(*range(3))
# 0 1 2

print(*'Hello') # H e l l o

print([[0, 1, 2], 'Hello']) # [[0, 1, 2], 'Hello']
print(*[[0, 1, 2], 'Hello']) # [0, 1, 2] Hello
print([*[0, 1, 2], *'Hello']) # [0, 1, 2, 'H', 'e', 'l', 'l', 'o']
print(*[*[0, 1, 2], *'Hello']) # 0 1 2 H e l l o


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу