1. 程式人生 > >[py][lc]python的紙牌知識點

[py][lc]python的紙牌知識點

知識 lec clas collect 知識點 import 返回 實例 -c

模塊collections-collections.namedtuple表示tuple欲言不清

如表示一個坐標, t = (1,2), 搞不清楚.
如果這樣就對了Point(x=1, y=2)

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y']) #做一些kv形式的易辨別的數據結構
p = Point(1, 2)
print(p)

# Point(x=1, y=2)

類的方法: getitem 把實例當list來操作

class Student:
    arr = [0, 1, 2, 3, 4] #返回arr的第3項
    def __getitem__(self, n):
        return self.arr[n]

s = Student()
print(s[3])

# 3

類的方法: __len__方法用於丈量類的實例的長度

class A:
    arr = [1, 2, 3] #返回他的長度
    def __len__(self):#用來丈量實例長度的
        return len(self.arr)

a = A()
print(len(a))

# 3

一些小知識點

- str轉list
>>> list('JQKA')
['J', 'Q', 'K', 'A']

- 生成str類型的數字序列
>>> [str(n) for n in range(2,11)]
['2', '3', '4', '5', '6', '7', '8', '9', '10']

綜合小例子

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p)


arr1 = [str(i) for i in range(10)]
arr2 = [str(i) for i in range(10)]

s = [Point(k1,k2) for k1 in arr1 for k2 in arr2]
print(s)


# Point(x=1, y=2)
# [Point(x='0', y='0'), Point(x='0', y='1'), Point(x='0', y='2'), Point(x='1', y='0'), Point(x='1', y='1'), Point(x='1', y='2'), Point(x='2', y='0'), Point(x='2', y='1'), Point(x='2', y='2')]

[py][lc]python的紙牌知識點