[Python] タプル | tuple
こんにちは、@yasuです。
今回は、タプル(tuple)の使い方を習得したいと思います。
実行環境はこちらです。
https://repl.it/
分かったこと。
- 定義するとき、()で囲む 例(a,b,c)
- 定義するとき、型の混合は可能 例("a",123,True)
- データの追加や削除、更新はできないようです
- 参照は可能[] 例[0]
- 検索は可能(存在しないときは例外発生)
- sample関数は、データの型が混在しても可能
コード
# ----------------------------------------
# タプル
# ----------------------------------------
# 代入方法1
menu=("ラーメン","餃子","ライス","ビール")
print(type(menu))
#<class 'tuple'>
#要素数 len
print(len(menu))
#4
print(menu)
#('ラーメン', '餃子', 'ライス', 'ビール')
# 参照方法 []
# [0],[1],[2]
print(menu[0])
#ラーメン
try:
print(menu[4])
except IndexError as identifier:
print(identifier)
#IndexError: tuple index out of range
#代入NG
try:
menu[0]="五目焼きそば"
except TypeError as identifier:
print(identifier)
#TypeError: 'tuple' object does not support item assignment
#検索(存在するときは、インデックスを返す)
index = menu.index("餃子")
print(index)
#1
#検索(存在しないときは、例外を返す)
try:
index = menu.index("レバニラ炒め")
print(index)
except ValueError as identifier:
print(identifier)
#ValueError: tuple.index(x): x not in tuple
# 有無判定 in
# あらかじめ有無判定が必要かも
print("レバニラ炒め" in menu)
#False
# ----------------------------------------
# 代入方法2
(name,price,oomori_umu)=("ラーメン",400,True)
print (name,price,oomori_umu)
#ラーメン 400 True
# ----------------------------------------
#代入方法3
print(tuple(range(5)))
#(0, 1, 2, 3, 4)
#例、5回ループ
for i in range(5):
pass
# ----------------------------------------
# shuffle NG
# sample OK
from random import shuffle,sample
numbers = tuple(range(5))
print(type(numbers))
#<class 'tuple'>
#混ぜるNG
try:
shuffle(numbers)
print(numbers)
except TypeError as identifier:
print(identifier)
#'tuple' object does not support item assignment
#n個から任意にm個を取得するOK
print(type(sample(numbers,3)))
#<class 'list'>
print(sample(numbers,3))
#[3, 2, 4]
# 型が混在しても可能
print(sample(("ラーメン",400,True),2))
# ----------------------------------------
#型変換
numbers = list(numbers)
print(numbers)
#[0, 1, 2, 3, 4]
@yasu transfered 0.5 KRWP to @krwp.burn. voting percent : 5.38%, voting power : 65.36%, steem power : 1920286.67, STU KRW : 1200.
@yasu staking status : 250 KRWP
@yasu limit for KRWP voting service : 0.5 KRWP (rate : 0.002)
What you sent : 0.5 KRWP [47108120 - 111762eabb6bcba558b41b266f2211c468892206]