List & Tuple

      在〈List & Tuple〉中尚無留言

List

list 是一個有序的集合, 可以動態新增刪除裏面的元素

使用方式

使用變數並在 [] 中指定值即可. 將變數直接印出, 則會列印所有的值

student=["Thomas", "John", "keven"]
print(student)

取得取代

如陣列一樣傳入索引編號, 即可讀取或變更裏面的值.

索引編號若超出範圍,  則會產生IndexError 錯誤.

另索引編號可以為 -1 : 取最後一個值, -2則是取最後第二個值

student[0]="Tony"
print(student[0])

新增

使用 append()則會新增資料到最後一筆中

student.append("tracy")

插入

使用insert, 並指定要插入的索引, 則可以將值插入中間位置

student.insert(1, "merry")

刪除

使用pop(), 並不傳入參數, 則會將最後一個刪除. 若有傳入參數, 則會刪除參數指定位置的值

student.pop(1)

不同型態的值

Python是弱型語言嘛, 所以集合內的值,  不一定要同型態, 如下有的是字串, 有的是數字. 真是個奇葩的程式語言啊.

student=["Thomas", "John", "keven", 123]

集合中的集合

集合中,  可以是其他的集合

不過請注意, 要列印Thomas, 則必需使用 school[2][0]的方式取得

student=["Thomas", "John", "keven"]
school=["校長", "Merry", student]
print(school)
print(school[2][0])

結果 :
['校長', 'Merry', ['Thomas', 'John', 'keven']]
Thomas

空集合

bus=[] , 此時的len(bus)則為 0

Tuple [ˈtjuːpəl]

另一種有序的集合, 叫元組(tuple). tuple和list 類似, 但tuple一旦初始化後就不能修改. 所以tuple沒有append, 也沒有insert.

有時為了安全性, 如果值不需再作改變時, 盡量使用tuple

classmates = ('Michael', 'Bob', 'Tracy')
#classmates[0]="abc" <==TypeError: 'tuple' object does not support item assignment
print(classmates)

tuple陷井1

以下的代碼, 並不是更改tuple, 而是tuple重新指向, 所以不是值的變更

tuple_1

t = ('Michael', 'Bob', 'Tracy')
print(t)
t=("Thomas",)
print(t)

陷井2

t=(1,2) <==二個元素
t=() <==空的元素
t=(1) <==t 為1 這個數
t(1,) <== t只有一個元素, 所以只有一個元素的話, 一定要加  “,”

可變 tuple

下述的 t[2][0], 其實並不是可變的tuple, 而是在 tuple[2]含了一個可變的list, 所以變更的是list,  而不是tuple

t = ('Michael', 'Bob', ["Thomas", "John"])
t[2][0]="Kevin"
print(t)

天干地支

from datetime import datetime
sky=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
land=['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']
animal=['鼠','牛','虎','免','龍','蛇','馬','羊','猴','雞','狗','豬']
current=datetime.now().year-1911
year=13
print(f"目前為民國 {current}年")
for i in range(150):
    if(year<=current):
        print('{:s}{:s}: {:s} 民國{:3d}年 {:3d}歲'.format(
            sky[i%10], land[i%12], animal[i%12], year, current-year+1))
    else:
        print('{:s}{:s}: {:s} 民國{:3d}年'.format(
            sky[i%10], land[i%12], animal[i%12], year))
    year+=1
結果
目前為民國 109年
甲子: 鼠 民國 13年  97歲
乙丑: 牛 民國 14年  96歲
丙寅: 虎 民國 15年  95歲
丁卯: 免 民國 16年  94歲
戊辰: 龍 民國 17年  93歲
己巳: 蛇 民國 18年  92歲
庚午: 馬 民國 19年  91歲
辛未: 羊 民國 20年  90歲
壬申: 猴 民國 21年  89歲
癸酉: 雞 民國 22年  88歲
甲戌: 狗 民國 23年  87歲
乙亥: 豬 民國 24年  86歲
丙子: 鼠 民國 25年  85歲
丁丑: 牛 民國 26年  84歲
戊寅: 虎 民國 27年  83歲
己卯: 免 民國 28年  82歲
庚辰: 龍 民國 29年  81歲
辛巳: 蛇 民國 30年  80歲
壬午: 馬 民國 31年  79歲
癸未: 羊 民國 32年  78歲
甲申: 猴 民國 33年  77歲
乙酉: 雞 民國 34年  76歲
丙戌: 狗 民國 35年  75歲
丁亥: 豬 民國 36年  74歲
戊子: 鼠 民國 37年  73歲
己丑: 牛 民國 38年  72歲
庚寅: 虎 民國 39年  71歲
辛卯: 免 民國 40年  70歲
壬辰: 龍 民國 41年  69歲
癸巳: 蛇 民國 42年  68歲
甲午: 馬 民國 43年  67歲
乙未: 羊 民國 44年  66歲
丙申: 猴 民國 45年  65歲
丁酉: 雞 民國 46年  64歲
戊戌: 狗 民國 47年  63歲
己亥: 豬 民國 48年  62歲
庚子: 鼠 民國 49年  61歲
辛丑: 牛 民國 50年  60歲
壬寅: 虎 民國 51年  59歲
癸卯: 免 民國 52年  58歲
甲辰: 龍 民國 53年  57歲
乙巳: 蛇 民國 54年  56歲
丙午: 馬 民國 55年  55歲
丁未: 羊 民國 56年  54歲
戊申: 猴 民國 57年  53歲
己酉: 雞 民國 58年  52歲
庚戌: 狗 民國 59年  51歲
辛亥: 豬 民國 60年  50歲
壬子: 鼠 民國 61年  49歲
癸丑: 牛 民國 62年  48歲
甲寅: 虎 民國 63年  47歲
乙卯: 免 民國 64年  46歲
丙辰: 龍 民國 65年  45歲
丁巳: 蛇 民國 66年  44歲
戊午: 馬 民國 67年  43歲
己未: 羊 民國 68年  42歲
庚申: 猴 民國 69年  41歲
辛酉: 雞 民國 70年  40歲
壬戌: 狗 民國 71年  39歲
癸亥: 豬 民國 72年  38歲
甲子: 鼠 民國 73年  37歲
乙丑: 牛 民國 74年  36歲
丙寅: 虎 民國 75年  35歲
丁卯: 免 民國 76年  34歲
戊辰: 龍 民國 77年  33歲
己巳: 蛇 民國 78年  32歲
庚午: 馬 民國 79年  31歲
辛未: 羊 民國 80年  30歲
壬申: 猴 民國 81年  29歲
癸酉: 雞 民國 82年  28歲
甲戌: 狗 民國 83年  27歲
乙亥: 豬 民國 84年  26歲
丙子: 鼠 民國 85年  25歲
丁丑: 牛 民國 86年  24歲
戊寅: 虎 民國 87年  23歲
己卯: 免 民國 88年  22歲
庚辰: 龍 民國 89年  21歲
辛巳: 蛇 民國 90年  20歲
壬午: 馬 民國 91年  19歲
癸未: 羊 民國 92年  18歲
甲申: 猴 民國 93年  17歲
乙酉: 雞 民國 94年  16歲
丙戌: 狗 民國 95年  15歲
丁亥: 豬 民國 96年  14歲
戊子: 鼠 民國 97年  13歲
己丑: 牛 民國 98年  12歲
庚寅: 虎 民國 99年  11歲
辛卯: 免 民國100年  10歲
壬辰: 龍 民國101年   9歲
癸巳: 蛇 民國102年   8歲
甲午: 馬 民國103年   7歲
乙未: 羊 民國104年   6歲
丙申: 猴 民國105年   5歲
丁酉: 雞 民國106年   4歲
戊戌: 狗 民國107年   3歲
己亥: 豬 民國108年   2歲
庚子: 鼠 民國109年   1歲
辛丑: 牛 民國110年
壬寅: 虎 民國111年
癸卯: 免 民國112年
甲辰: 龍 民國113年
乙巳: 蛇 民國114年
丙午: 馬 民國115年
丁未: 羊 民國116年
戊申: 猴 民國117年
己酉: 雞 民國118年
庚戌: 狗 民國119年
辛亥: 豬 民國120年
壬子: 鼠 民國121年
癸丑: 牛 民國122年
甲寅: 虎 民國123年
乙卯: 免 民國124年
丙辰: 龍 民國125年
丁巳: 蛇 民國126年
戊午: 馬 民國127年
己未: 羊 民國128年
庚申: 猴 民國129年
辛酉: 雞 民國130年
壬戌: 狗 民國131年
癸亥: 豬 民國132年
甲子: 鼠 民國133年
乙丑: 牛 民國134年
丙寅: 虎 民國135年
丁卯: 免 民國136年
戊辰: 龍 民國137年
己巳: 蛇 民國138年
庚午: 馬 民國139年
辛未: 羊 民國140年
壬申: 猴 民國141年
癸酉: 雞 民國142年
甲戌: 狗 民國143年
乙亥: 豬 民國144年
丙子: 鼠 民國145年
丁丑: 牛 民國146年
戊寅: 虎 民國147年
己卯: 免 民國148年
庚辰: 龍 民國149年
辛巳: 蛇 民國150年
壬午: 馬 民國151年
癸未: 羊 民國152年
甲申: 猴 民國153年
乙酉: 雞 民國154年
丙戌: 狗 民國155年
丁亥: 豬 民國156年
戊子: 鼠 民國157年
己丑: 牛 民國158年
庚寅: 虎 民國159年
辛卯: 免 民國160年
壬辰: 龍 民國161年
癸巳: 蛇 民國162年

大樂透

import random
datas=[]
for i in range(7):
while True:
n=random.randint(1,49)
flag=True
for d in datas:
if n==d:
flag=False
break;
if flag:
datas.append(n)
break
print(datas)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *