1. 列表是什么
Lists are ordered collections
- 列表由一系列按特定顺序排列的元素组成。
- 元素可以是字符,数字,字符串等等。
- 列表名最好是复数形式,如letters,names,digits。
- 列表由方括号和逗号表示,元素涉及到字符时,需要引号。
具体形式为:['xx','xx','xx'...]或[2,3,4]。
python打印列表会将整个列表打印出来,包括方括号。
输入:
names=['Tom','Jack','Lisa']
print(names)
输出:
c:\py>print_names
['Tom', 'Jack', 'Lisa']
获取列表中单个元素的方法如下。
2. 访问列表元素
访问列表某个元素的方法是列表名称+对应索引
输入:
names=['Tom','Jack','Lisa']
print(names[0],names[1],names[2])
输出:
c:\py>names
Tom Jack Lisa
这样返回的元素不包含方括号与引号。
注意:
列表的索引是从0开始的,如name.[0]访问的是列表第一个元素。
输入:
figures=[1,2,3]
print(figures[0],figures[1],figures[2])
输出:
c:\py>figures
1 2 3
由上可以发现索引0对应第1个数字。
特别的,索引[-1]访问的是最后一个元素。类推,索引-2对应倒数第二个元素,等等。
输入:
names=['Tom','Jack','Lisa']
print(names[-1],names[-2],names[-3])
输出:
c:\py>names[-x]
Lisa Jack Tom
使用列表中的元素
对于列表中的字符串元素,上一节的字符串方法都可以用。
输入:
names=['tom','jack','lisa']
print('My best friend is '+names[-3].title()+'.')
输出:
c:\py>names_title
My best friend is Tom.
3. 更改列表元素
更改元素的方法和获取元素的方法一样,都是列表名+[索引]。
输入:
names=['tom','jack','lisa']
print(names)
names[0]='jimmy' #更改列表第一个元素
print(names)
输出:
c:\py>change_list_item
['tom', 'jack', 'lisa']
['jimmy', 'jack', 'lisa']
4. 添加列表元素
使用.append()方法
,在列表最后添加一个元素,不影响其他元素。
输入:
names=['tom','jack','lisa']
print(names)
names.append('jimmy')#在列表最后添加一个元素
print(names)
输出:
c:\py>append
['tom', 'jack', 'lisa']
['tom', 'jack', 'lisa', 'jimmy']
利用.append()
方法建立一个新列表
输入:
names=[]#刚开始,列表为空
names.append('tom') #在列表最后添加一个元素
names.append('jack')
names.append('lisa')
print(names)
输出:
c:\py>build_lists_append
['tom', 'jack', 'lisa']
逐个向空列表添加元素非常的常见,如保存注册网站的用户名。
注意: 使用.append()
方法添加元素时,括号里面要填入元素值。
5. 在列表中插入新元素
.insert(索引,值)
使用.insert()方法
,在列表中添加一个新元素,新元素后面的元素往后顺移一位。
输入:
names=['tom','jack','lisa']
print('previous lists:'+str(names))
names.insert(1,'jimmy')
print('present lists:'+str(names))names=['tom','jack','lisa']
print('previous lists:'+str(names))
输出:
c:\py>names_insert
previous lists:['tom', 'jack', 'lisa']
present lists:['tom', 'jimmy', 'jack', 'lisa']
the item of index 2 is jack
6. 移除列表的元素
(1) . 使用del
语句删除列表元素
确定要删除的列表元素的位置,再使用del
语句删除列表中的元素。
输入:
names=['tom','jack','lisa']
print('previous lists: '+str(names))
del names[0] #删除索引为0的第一个元素
print('present lists:'+str(names))
输出:
c:\py>names_del
previous lists: ['tom', 'jack', 'lisa']
present lists:['jack', 'lisa']
执行del
语句后,被删除的元素再也找不回来了,无法再在程序中使用。
(2) . 使用.pop()
方法移除列表最后一个元素
- 和用
del
语句不一样,用.pop()
方法移除的元素还可以使用。 -
.pop()
括号里面为空时,弹出列表中最后一个元素。
输入:
names=['tom','jack','lisa']
print('previous lists: '+str(names))
poped_name=names.pop() #弹出最后一个元素并且保存在一个变量中
print('present lists:'+str(names))
print('the poped_name is '+poped_name) #这里被移除的元素还可以被程序使用
输出:
c:\py>names_pop
previous lists: ['tom', 'jack', 'lisa']
present lists:['tom', 'jack']
the poped_name is lisa
(3)使用.pop(index)
方法移除任意位置元素
给.pop( )
方法指明索引,可以移除指定位置元素。
输入:
names=['tom','jack','lisa']
print('previous lists: '+str(names))
poped_name=names.pop(1) #弹出第2个元素
print('present lists:'+str(names))
print('the poped_name is '+poped_name)
输出:
c:\py>names_pop
previous lists: ['tom', 'jack', 'lisa']
present lists:['tom', 'lisa']
the poped_name is jack
注意:
- 区分
.pop()
和.pop(index)
的区别。 - 当你不再使用被移除的元素时,用
del
语句,被移除的元素还需要使用时,使用.pop()
方法。
(4) 使用.remove( )
方法移除列表中指定值的元素
输入:
names=['tom','jack','lisa','john','lisa']
print(names)
names.remove('lisa') #移除lisa
print(names)
removed_name='jack' #将jack存储在变量中
names.remove(removed_name) #移除jack
print(names)
输出:
c:\py>names_remove
['tom', 'jack', 'lisa', 'john', 'lisa']
['tom', 'jack', 'john', 'lisa']
['tom', 'john', 'lisa']
注意:
-
names.remove()
不可以再赋值给一个变量。 - 可以先将要移除的元素值保存在一个变量中,然后告诉
.remove()
方法变量名,移除指定元素。 -
.remove()
方法只移除一个元素,如果列表中有多个相同值的元素,如上面例子中的‘lisa’,它只会移除第一个‘lisa’。可以使用一个循环,来移除所有的指定元素。
7. 组织列表
(1) 使用.sort()
方法永久改变列表的顺序
.sort()
方法将列表按字母表顺序重新排列。
输入:
names=['tom','jack','lisa','mike','andy']
print(names)
names.sort() #按字母表顺序排列
print(names)
输出:
c:\py>names_sort
['tom', 'jack', 'lisa', 'mike', 'andy']
['andy', 'jack', 'lisa', 'mike', 'tom']
还可以按字母表逆序给列表排序
只需要将.sort()
方法括号中的参数改为reverse=True
,即可按字母表逆序排。
输入:
names=['tom','jack','lisa','mike','andy']
print(names)
names.sort(reverse=True) #按字母表逆序排列
print(names)
输出:
c:\py>names_reverse
['tom', 'jack', 'lisa', 'mike', 'andy']
['tom', 'mike', 'lisa', 'jack', 'andy']
注意:
-
.sort()
方法永久改变列表的顺序。 - 参数
reverse=True
里的True首字母要大写。
(2) 用sorted()
函数暂时改变列表的顺序
输入:
names=['tom','jack','lisa','mike','andy']
print('here is the original lists:')
print(names)
print('\nhere is the sorted lists:')
print(sorted(names))
print('\nhere is the original lists again:')
print(names)
输出:
c:\py>names_sorted
here is the original lists:
['tom', 'jack', 'lisa', 'mike', 'andy']
here is the sorted lists:
['andy', 'jack', 'lisa', 'mike', 'tom']
here is the original lists again:
['tom', 'jack', 'lisa', 'mike', 'andy']
(3) 使用.reverse()
方法使列表倒序
输入:
names=['tom','jack','lisa','mike','andy']
print('here is the original lists:')
print(names)
names.reverse() #reverse()方法会永久改变列表的顺序
print('\nhere is the reversed lists:')
print(names)
输出:
c:\py>names_revers
here is the original lists:
['tom', 'jack', 'lisa', 'mike', 'andy']
here is the reversed lists:
['andy', 'mike', 'lisa', 'jack', 'tom']
.reverse()
方法只是简单地将列表的顺序倒过来,并且这种顺序的改变是永久的,想变回原来的顺序只需将.reverse()
方法再使用一次。
8. 使用len()
函数测量列表长度
输入:
names=['tom','jack','lisa','mike','andy']
names_len=len(names)
print('names:'+str(names))
print("the length of names is ")
print(names_len)
输出:
c:\py>names_len
names:['tom', 'jack', 'lisa', 'mike', 'andy']
the length of names is
5
易错点:
- 列表的索引是它的位置-1
- 空列表通过索引[-1]找最后一个元素会出错。
网友评论