collections.namedtupleについて
| 登録日 | :2024/10/10 08:44 |
|---|---|
| カテゴリ | :Python基礎 |
namedtupleについてのサンプル
import collections
import csv
with open('names.csv', 'w') as csvfile:
fieldnames = ['first', 'last', 'address']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'first': 'Mike', 'last': 'Jackson', 'address': 'A'})
writer.writerow({'first': 'Jun', 'last': 'Sakai', 'address': 'B'})
writer.writerow({'first': 'Nancy', 'last': 'Mask', 'address': 'C'})
with open('names.csv', 'r') as f:
csv_reader = csv.reader(f)
Names = collections.namedtuple('Names', next(csv_reader))
for row in csv_reader:
names = Names._make(row)
print(names.first, names.last, names.address)
# Point = collections.namedtuple('Point', ['x', 'y'])
# p = Point(10, y=20)
# print(p)
# print(p.x)
# print(p._asdict())
#
# p1 = Point._make([100, 200])
# print(p1)
# print(p1._asdict())
#
# p1._replace(x=500)
# print(p1)
# p2 = p1._replace(x=500)
# print(p2)
#
#
# class SumPoint(collections.namedtuple('Point', ['x', 'y'])):
# @property
# def total(self):
# return self.x + self.y
#
#
# p3 = SumPoint(2, 3)
# print(p3.x, p3.y, p3.total)
実行結果
Mike Jackson A
Jun Sakai B
Nancy Mask C