# Python – 列表

> 原文： [https://howtodoinjava.com/python/python-lists/](https://howtodoinjava.com/python/python-lists/)

在 [Python](https://howtodoinjava.com/python-tutorial/) 中，列表为：

*   有序
*   具有索引（索引从 0 开始）
*   可变
*   异构的（列表中的项目不必是同一类型）
*   写为方括号之间的逗号分隔值列表

```java
listOfSubjects = ['physics', 'chemistry', "mathematics"]

listOfIds = [0, 1, 2, 3, 4]

miscList = [0, 'one', 2, 'three']

```

## 1.访问列表项

要访问列表中的值，请使用切片语法或数组索引形式的方括号来获取单个项目或项目范围。

传递的索引值可以是正数或负数。 **负索引**值表示从列表末尾开始计数。

`list [m : n]`表示子列表从索引`m`（包括）开始，到索引`n`（不包括）结束。

*   如果未提供`m`，则假定其值为零。
*   如果未提供`n`，则选择范围直到列表的最后。

```java
ids = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print( ids[0] )			# 0

print( ids[1:5] )		# [1, 2, 3, 4]

print( ids[ : 3] )		# [0, 1, 2]

print( ids[7 : ] )		# [7, 8, 9]

print( ids[-8:-5] )		# [2, 3, 4]

```

## 2.列表

要更改列表中的特定项目，请使用其索引进行引用并分配一个新值。

```java
charList =  ["a", "b", "c"]

charList [2] = "d"

print (charList)	# ['a', 'b', 'd']

```

## 3.迭代列表

我们可以使用`for`循环遍历列表项。

```java
charList =  ["a", "b", "c"]

for x in charList:
	print(x)

# a
# b
# c

```

## 4.检查列表中是否存在项目

使用`'in'`关键字确定列表中是否存在指定的项目。

```java
charList =  ["a", "b", "c"]

if "a" in charList:
	print("a is present")	# a is present

if "d" in charList:
	print("d is present")
else:
	print("d is NOT present")	# d is NOT present

```

## 5.查找列表的长度

使用`len()`函数查找给定列表的长度。

```java
charList =  ["a", "b", "c"]

x = len (charList)

print (x)	# 3

```

## 6.添加项目

*   要将项目添加到列表的末尾，请使用`append(item)`方法。
*   要在特定索引位置添加项目，请使用`insert(index, item)`方法。 如果`index`大于索引长度，则将项目添加到列表的末尾。

```java
charList =  ["a", "b", "c"]

charList.append("d")	
charList.append("e")

print (charList)		# ['a', 'b', 'c', 'd', 'e']

charList.insert(5, "f")

print (charList)		# ['a', 'b', 'c', 'd', 'e', 'f']

charList.insert(10, "h")	# No error 

print (charList)	# ['a', 'b', 'c', 'd', 'e', 'f', 'h']

```

## 7.移除项目

要从列表中删除一项，请使用以下四种方式之一，即`remove()`，`pop()`，`clear()`或`del`关键字。

#### 7.1 `remove()`

它会通过其值删除指定的项目。

```java
charList =  ["a", "b", "c"]

charList.remove("c")	

print (charList)		# ['a', 'b']

```

#### 7.2 `pop()`

它将通过索引删除指定的项目。 如果未提供`index`，它将从列表中删除最后一项。

```java
charList =  ["a", "b", "c", "d"]

charList.pop()			# removes 'd' - last item

print (charList)		# ['a', 'b', 'c']

charList.pop(1)			# removes 'b'

print (charList)		# ['a', 'c']

```

#### 7.3 `clear()`

它清空列表。

```java
charList =  ["a", "b", "c", "d"]

charList.clear()	

print (charList)		# []

```

#### 7.4 `del`关键字

它可以用于**通过索引**从列表中删除某项。 我们也可以使用它来**删除整个列表**。

```java
charList =  ["a", "b", "c", "d"]

del charList[0]	

print (charList)		# ['b', 'c', 'd']

del charList

print (charList)		# NameError: name 'charList' is not defined

```

## 8.连接两个列表

我们可以使用`"+"`运算符或`extend()`函数在 Python 中连接两个给定列表。

```java
charList = ["a", "b", "c"]
numList	= [1, 2, 3]

list1 = charList + numList

print (list1)	# ['a', 'b', 'c', 1, 2, 3]

charList.extend(numList)

print (charList)	# ['a', 'b', 'c', 1, 2, 3]

```

## 9\. Python 列表方法

#### 9.1 `append()`

在列表的末尾添加一个元素。

```java
charList =  ["a", "b", "c"]

charList.append("d")

print (charList)	# ["a", "b", "c", "d"]

```

#### 9.2 `clear()`

从列表中删除所有元素。

```java
charList =  ["a", "b", "c"]

charList.clear()

print (charList)	# []

```

#### 9.3 `copy()`

返回列表的副本。

```java
charList =  ["a", "b", "c"]

newList = charList.copy()

print (newList)	# ["a", "b", "c"]

```

#### 9.4 `count()`

返回具有指定值的元素数。

```java
charList =  ["a", "b", "c"]

x = charList.count('a')

print (x)	# 1

```

#### 9.5 `extend()`

将列表的元素添加到当前列表的末尾。

```java
charList = ["a", "b", "c"]
numList	= [1, 2, 3]

charList.extend(numList)

print (charList)	# ['a', 'b', 'c', 1, 2, 3]

```

#### 9.6 `index()`

返回具有指定值的第一个元素的索引。

```java
charList =  ["a", "b", "c"]

x = charList.index('a')

print (x)	# 0

```

#### 9.7 `insert()`

在指定位置添加元素。

```java
charList =  ["a", "b", "c"]

charList.insert(3, 'd')

print (charList)	# ['a', 'b', 'c', 'd']

```

#### 9.8 `pop()`

删除指定位置或列表末尾的元素。

```java
charList =  ["a", "b", "c", "d"]

charList.pop()			# removes 'd' - last item

print (charList)		# ['a', 'b', 'c']

charList.pop(1)			# removes 'b'

print (charList)		# ['a', 'c']

```

#### 9.9 `remove()`

删除具有指定值的项目。

```java
charList =  ["a", "b", "c", "d"]

charList.remove('d')

print (charList)		# ['a', 'b', 'c']

```

#### 9.10 `reverse()`

反转列表中项目的顺序。

```java
charList =  ["a", "b", "c", "d"]

charList.reverse()

print (charList)		# ['d', 'c', 'b', 'a']

```

#### 9.11 `sort()`

默认情况下，以升序对给定列表进行排序。

```java
charList =  ["a", "c", "b", "d"]

charList.sort()

print (charList)		# ["a", "b", "c", "d"]

```

学习愉快！

阅读更多：

[Python – 列表与元组](https://howtodoinjava.com/python/lists-vs-tuples/)