Python プログラミング入門 (006) - リスト操作 (1): リスト要素の追加、削除、変更
目次
- Python プログラミング入門 (006) - リスト操作 (1): リスト要素の追加、削除、変更
-
- 1. リストを作成する
- 2. リストの基本操作
- 3. リストの追加・削除・変更
-
-
- 1. リスト項目を変更する
- (1) 指定したリスト要素をインデックス番号で変更する
- (2) スライスによるリスト要素の変更
- 2. リスト項目を追加する
- (1) append()メソッドを使用してリスト要素を追加します
- (2) insert()メソッドを使用してリスト要素を追加します
- (3) extend() メソッドを使用してリスト要素を追加します
- 3. リスト項目を削除する
- (1) リスト要素を削除するには、remove() メソッドを使用します。要素の値に基づいて削除します。
- (2) Pop() メソッドを使用してリスト要素を削除します。インデックスに従って削除します。
- (3) del キーワードを使用して、リストまたは指定したリスト要素を削除します。インデックスまたは範囲に基づいて削除します。
- (4) リスト要素を削除するにはclear()を使用します
-
リストは、特定の順序で配置された一連の要素で構成され、Python に組み込まれた変更可能なシーケンスです。リストのすべての要素は角括弧 ([]) のペアで囲まれ、隣接する 2 つの要素はカンマ (,) で区切られます。整数、文字列、リスト、タプルなど、あらゆる種類のコンテンツをリストに入れることができます。同じリスト内で要素を繰り返すことができ、要素間に関係がないため、要素が異なるタイプになることもあります。
1. リストを作成する
1. 割り当てによるリストの作成
構文形式は次のとおりです。
listname = [element1, element2, element3, ... , elementn]
说明:
(1)listname:表示列表的名称
(2)element1, element2, element3, ... , elementn:表示列表中的元素
例えば:
list1=[2,3,5,7,11,13,17,19,23]
list2=["Zhengzhou","Xinxiang","Luoyang","Kaifeng","Anyang"]
list3=["20230214001","刘鹏","男","2003-12-3","团员"]
list4=["001","Python从入门到精通","清华大学出版社",58.2]
list5=["经济与管理学院","机电学院","计算机学院","软件学院","文法学院","艺术学院"]
print(list1)
print(list2)
print(list3)
print(list4)
print(list5)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 3, 5, 7, 11, 13, 17, 19, 23]
['Zhengzhou', 'Xinxiang', 'Luoyang', 'Kaifeng', 'Anyang']
['20230214001', '刘鹏', '男', '2003-12-3', '团员']
['001', 'Python从入门到精通', '清华大学出版社', 58.2]
['经济与管理学院', '机电学院', '计算机学院', '软件学院', '文法学院', '艺术学院']
2. list() 関数を使用してリストを作成します
構文形式は次のとおりです。
列表名 = list() # 创建空列表
列表名 = list(列表名) # 使用 list() 函数将列表传递至新列表
例えば:
list1=[2,3,5,7,11,13,17,19,23]
list2 = list() # 创建空列表
list3 = list1 # list1和list3指向同一个地址,如果修改一个列表的元素值,另一个列表也被修改
list4 = list(list1)
list5 = list1[:] # 将列表list1中的所有元素赋值给list5
print(list2)
del list1[2:6]
print(list3)
print(list4)
print(list5)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[]
[2, 3, 17, 19, 23]
[2, 3, 5, 7, 11, 13, 17, 19, 23]
[2, 3, 5, 7, 11, 13, 17, 19, 23]
3. copy() メソッドを使用してリストをコピーします
構文形式は次のとおりです。
listname = 列表名.copy() # 将列表数据复制给新列表
例えば:
list1=[2,3,5,7,11,13,17,19,23]
list2 = list1.copy()
print(list2)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 3, 5, 7, 11, 13, 17, 19, 23]
4. リストの結合
構文形式は次のとおりです。
listname = 列表1 + 列表2 # 将两个列表数据合并至新的列表
例えば:
list1 = ["张三","李四","王五","赵六"]
list2 = ["Tom","Jerry","Kate","Rose"]
list3 = list1 + list2
print(list3)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
['张三', '李四', '王五', '赵六', 'Tom', 'Jerry', 'Kate', 'Rose']
リスト操作で一般的に使用されるメソッドを次の表に示します。
方法 | 説明する |
---|---|
追加() | リストの最後に要素を追加します |
クリア() | リストからすべての要素を削除します |
コピー() | リストのコピーを返す |
カウント() | 指定された値を持つ要素の数を返します |
レン() | リストの長さを返します |
伸ばす() | リスト要素 (または任意の反復可能な要素) を現在のリストの末尾に追加します |
索引() | 指定された値を持つ最初の要素のインデックスを返します。 |
入れる() | 指定した位置に要素を追加 |
ポップ() | 指定した位置の要素を削除します |
取り除く() | 指定した値を持つ項目を削除する |
逆行する() | リストの順序を逆にする |
選別() | リストを並べ替える |
2. リストの基本操作
1. 索引
構文形式は次のとおりです。
listname[index]
说明:
(1)index:索引编号,第1项编号为0
(2)正向索引:从左向右,第一项的索引为0,第二项的索引为1,依次类推。
(3)逆向索引:从右向左,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推。
例えば:
list1 = ["张三","李四","王五","赵六"]
print(list1[0]) # 第1个元素
print(list1[1]) # 第2个元素
print(list1[-1]) # 最后1个元素
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
张三
李四
赵六
2. スライス
構文形式は次のとおりです。
listname[start_index: end_index: step]
说明:
(1)在中括号中以冒号分隔索引值。
(2)start_index:表示要截取的开始索引值。该参数可以省略,表示从第一个字符开始。
(3)end_index:表示要截取的结束索引值。该参数可以省略,表示截取到最后一个字符结束。
(4)step:表示切片步长,该参数可以省略,默认值为 1。
例えば:
list1 = ["郑州市","新乡市","洛阳市","开封市","安阳市","漯河市","南阳市"]
print(list1[:]) # 打印所有元素
print(list1[::2]) # 间隔打印所有元素
print(list1[1:]) # 打印第1个元素之后的元素
print(list1[:-1]) # 打印最后1个元素之前的元素
print(list1[::-1]) # 倒序输出
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
['郑州市', '新乡市', '洛阳市', '开封市', '安阳市', '漯河市', '南阳市']
['郑州市', '洛阳市', '安阳市', '南阳市']
['新乡市', '洛阳市', '开封市', '安阳市', '漯河市', '南阳市']
['郑州市', '新乡市', '洛阳市', '开封市', '安阳市', '漯河市']
['南阳市', '漯河市', '安阳市', '开封市', '洛阳市', '新乡市', '郑州市']
3. 繰り返します
構文形式は次のとおりです。
listname * n
例えば:
list1 = ["郑州市","新乡市","洛阳市"]
str1 = "Hello " # 字符串也可以看作是一个列表
str2 = "="
print(list1 * 3)
print(str1 * 3)
print(str2 * 30)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
['郑州市', '新乡市', '洛阳市', '郑州市', '新乡市', '洛阳市', '郑州市', '新乡市', '洛阳市']
Hello Hello Hello
==============================
4. 接続
構文形式は次のとおりです。
列表1 + 列表2
例えば:
list1 = ["郑州市","新乡市","洛阳市"]
list2 = ["Washington","NewYork","Boston"]
str1 = "Henan "
str2 = "Xinxiang,"
str3 = "Henan Institute of Science and Technology."
print(list1 + list2)
print(str1 + str2 + str3)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
['郑州市', '新乡市', '洛阳市', 'Washington', 'NewYork', 'Boston']
Henan Xinxiang,Henan Institute of Science and Technology.
5. 要素が存在するかどうかを確認する
構文形式は次のとおりです。
element in listname
例えば:
list1 = ["郑州市","新乡市","洛阳市","开封市","安阳市","漯河市","南阳市"]
print("郑州市" in list1)
print("信阳市" in list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
False
6. 反復 (for ループを使用して走査)
構文形式は次のとおりです。
for i in listname:
print(i) # 遍历输出每个元素
例えば:
list1 = ["郑州市","新乡市","洛阳市","开封市","安阳市","漯河市","南阳市"]
for i in list1:print(i)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
郑州市
新乡市
洛阳市
开封市
安阳市
漯河市
南阳市
7. リストの入れ子
例えば:
list1 = [["郑州市","新乡市","洛阳市"],["张三","李四","王五"],[20,21,22,19]]
# 索引
print(list1[1]) # list1中的第2个元素(仍然是一个列表)
print(list1[1][1]) # list1中的第2个元素的第2个元素
# 切片
print(list1[:][1]) # list1中的第2个元素
print(list1[2][1:]) # list1中的第3个元素中的第2个元素之后的所有元素
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
['张三', '李四', '王五']
李四
['张三', '李四', '王五']
[21, 22, 19]
3. リストの追加・削除・変更
1. リスト項目を変更する
(1) 指定したリスト要素をインデックス番号で変更する
構文形式は次のとおりです。
listname[index] = 值
例えば:
list1 = ["郑州市","新乡市","洛阳市","开封市","安阳市","漯河市","南阳市"]
list1[1] = "Xinxiang City"
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
['郑州市', 'Xinxiang City', '洛阳市', '开封市', '安阳市', '漯河市', '南阳市']
(2) スライスによるリスト要素の変更
listname[索引范围] = 值
说明:
(1)用后面的值替换索引范围内的列表项(列表项的数量不一定相等)
(2)值的形式可以有如下几种:
listname[:3] = 2,4,8
listname[:3] = [2,4,8]
listname[:3] =(2,4,8)
例えば:
list1 = [2,4,6,8,10,12,14,16,18]
list1[1:4] = 11,22,33
print(list1)
list1[1:3] = [11,12,13] # 列表项的个数与切片的列表项个数不相等
print(list1)
list1[1:4] = (20,21,22,23,24,25)
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 11, 22, 33, 10, 12, 14, 16, 18]
[2, 11, 12, 13, 33, 10, 12, 14, 16, 18]
[2, 20, 21, 22, 23, 24, 25, 33, 10, 12, 14, 16, 18]
2. リスト項目を追加する
(1) append()メソッドを使用してリスト要素を追加します
デフォルトでは、append() メソッドを使用すると、リストの末尾に要素が追加されます。構文形式は次のとおりです。
listname.append(值)
例えば:
list1 = [2,4,6,8,10,12,14,16,18]
list1.append(100)
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 8, 10, 12, 14, 16, 18, 100]
(2) insert()メソッドを使用してリスト要素を追加します
insert() メソッドは、リスト内の指定された位置に要素を追加できます。追加後、元の位置とその後ろの要素は自動的に戻されます。構文形式は次のとおりです。
listname.insert(index, 值)
例えば:
list1 = [2,4,6,8,10,12,14,16,18]
list1.insert(3,100)
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 100, 8, 10, 12, 14, 16, 18]
(3) extend() メソッドを使用してリスト要素を追加します
extend() メソッドは、別のリスト内のすべての値をリストの最後に一度に追加します。構文形式は次のとおりです。
listname.extend(序列)
例えば:
list1 = [2,4,6,8,10]
list2 = [11,13,15]
list3 = ['a','b','c']
list1.extend(list2)
list2.extend(['a','b','c'])
print(list1)
print(list2)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 8, 10, 11, 13, 15]
[11, 13, 15, 'a', 'b', 'c']
3. リスト項目を削除する
(1) リスト要素を削除するには、remove() メソッドを使用します。要素の値に基づいて削除します。
Remove() メソッドは、指定された要素を削除するために使用されます。削除対象の目標値要素が複数ある場合、1回の実行で削除できる要素は1つだけとなり、インデックス位置が最も小さいものが削除されます。構文形式は次のとおりです。
listname.remove(元素)
例えば:
list1 = [2,4,6,8,10,12,14,16,10]
list1.remove(6)
print(list1)
list1.remove(10) # 删除第1个元素值为10的元素
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 8, 10, 12, 14, 16, 10]
[2, 4, 8, 12, 14, 16, 10]
(2) Pop() メソッドを使用してリスト要素を削除します。インデックスに従って削除します。
Pop() メソッドは、指定されたインデックス位置にある要素を削除するために使用されます。引数が指定されていない場合は、最後の要素が削除されます。構文形式は次のとおりです。
listname.pop()
listname.pop(index)
例えば:
list1 = [2,4,6,8,10,12,14,16]
list2 = [1,3,5,7,9,11,13]
list1.pop()
print(list1)
list1.pop()
print(list1)
list1.pop()
print(list1)
list2.pop(3)
print(list2)
list2.pop(3)
print(list2)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 8, 10, 12, 14]
[2, 4, 6, 8, 10, 12]
[2, 4, 6, 8, 10]
[1, 3, 5, 9, 11, 13]
[1, 3, 5, 11, 13]
(3) del キーワードを使用して、リストまたは指定したリスト要素を削除します。インデックスまたは範囲に基づいて削除します。
構文形式は次のとおりです。
del listname # 删除整个列表(从内存中删除)
del listname[index] # 删除指定索引位置的列表元素
del listname[索引范围] # 删除指定索引范围内的列表元素
例えば:
A) リスト全体を削除します。
list1 = [2,4,6,8,10,12,14,16]
del list1
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):
File "C:\Python\Python38\First.py", line 3, in <module>
print(list1)
NameError: name 'list1' is not defined
B) 指定されたインデックス位置にあるリスト要素を削除します
list1 = [2,4,6,8,10,12,14,16]
del list1[3]
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 10, 12, 14, 16]
C) 指定されたインデックス範囲内のリスト要素を削除します。
list1 = [2,4,6,8,10,12,14,16]
del list1[3:]
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6]
(4) リスト要素を削除するにはclear()を使用します
clear() メソッドは、リスト内のすべての要素をクリアできます (クリアされたリストは空のリストと呼ばれます)。構文形式は次のとおりです。
listname.clear()
例えば:
list1 = [2,4,6,8,10,12,14,16]
list1.clear()
print(list1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[]