数据结构--列表,元组

 

列表

In [1]:
# 列表(list)是Python以及其他语言中最常用到的数据结构之一。
# Python使用使用中括号 [ ] 来解析列表,列表中可以嵌套其他数据类型
 
 
 
 
 
 
 
 
 
 
 
### 列表的运算
 

列表的运算

In [29]:
 
 
 
 
 
 
 
 
 
 
a = [1,2,3]
b = [4,5,6]
a+b
 
 
Out[29]:
[1, 2, 3, 4, 5, 6]
In [30]:
 
 
 
 
 
 
 
 
 
 
a*3
 
 
Out[30]:
[1, 2, 3, 1, 2, 3, 1, 2, 3]
 

访问和使用列表元素

In [10]:
count =[18,19,20,21,22]
In [4]:
# 通过索引使用列表内元素
print("我今年%d岁了"%count[0])
 
我今年18岁了
In [7]:
# 列表切片
number=count[:]
print(number)
print(number is count)# 比较内存地址
 
[18, 19, 20, 21, 22]
False
In [11]:
# 直接赋值时,他们指向的是同一内存地址,修改其中一个另一个也会改变,后面会介绍深浅赋值
number1 = count
print(number1 is count)
count.append(23)
print(number1)
print(number)
 
True
[18, 19, 20, 21, 22, 23]
[18, 19, 20, 21, 22]
In [12]:
print(count[1:]) # 切片
print(count[1:19]) # 索引越界不会异常
 
[19, 20, 21, 22, 23]
[19, 20, 21, 22, 23]
 

修改,删除和添加元素

In [13]:
# 根据索引取修改
count = [1,2,3,4,5,6]
count[3] = 3 # 为列表下的元素赋新值
print(count)
 
[1, 2, 3, 3, 5, 6]
In [14]:
# 切片,迭代的去修改
count = [1,2,3,4,5,6]
count[0:2]="123" # 将新值迭代替换入指定位置
print(count)
 
['1', '2', '3', 3, 4, 5, 6]
In [15]:
count = [1,2,3,4,5,6]
count[0:2]=["123"] # 这样就不会把字符串拆散开来,迭代的是列表
print(count)
 
['123', 3, 4, 5, 6]
In [16]:
count = [1,2,3,4,5,6]
count[0:2]=123 # 异常,数字不可迭代
print(count)
 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-f7c354602e62> in <module>()
      1 count = [1,2,3,4,5,6]
----> 2count[0:2]=123 # 这样就不会把字符串拆散开来,迭代的是列表
      3 print(count)

TypeError: can only assign an iterable
 
添加元素
In [17]:
# append()追加
count = [1,2,3,4,5,6]
count.append(7)
print(count)
 
[1, 2, 3, 4, 5, 6, 7]
In [18]:
# insert()插入
count = [1,2,3,4,5,6]
count.insert(1,5) # 在索引为1的位置插入元素5,后面元素向后移动
print(count)
 
[1, 5, 2, 3, 4, 5, 6]
In [19]:
# extend() 迭代去增,将可迭代元素中的每一个元素追加进列表中
count = [1,2,3,4,5,6]
count.extend([7,8,9])
print(count)
 
[1, 2, 3, 4, 5, 6, 7, 8, 9]
 
删除元素
In [20]:
# 使用del根据索引删除元素
count = [1,2,3,4,5,6]
del count[1]
print(count)
 
[1, 3, 4, 5, 6]
In [22]:
# pop()根据索引删除元素,并且返回删除的元素
count = [1,2,3,4,5,6]
a = count.pop() # 默认删除最后一个
print(count,a)
 
[1, 2, 3, 4, 5] 6
In [23]:
# 根据值来删除元素,当存在相同值时只删除第一个
count = [1,1,2,3,4,5,6]
count.remove(1)
print(count)
 
[1, 2, 3, 4, 5, 6]
In [24]:
# 清空列表
count = [1,2,3,4,5,6]
count.clear()
print(count)
 
[]
 

组织列表

In [25]:
# sort() 升序排序,传递reverse=Ture进行降序排序,字符传的排序是按照ascii码来排序的
count = [1,7,5,8,3,9]
count.sort()
print(count)
 
[1, 3, 5, 7, 8, 9]
In [26]:
# 可以传递一个函数,按返回值来排序
count = [-2,-1,0,1,2]
count.sort(key=abs)
print(count)
 
[0, -1, 1, -2, 2]
In [27]:
# sorted() 返回一个新的列表,同样可以传递reverse和key
count = [1,7,5,8,3,9]
count1 = sorted(count)
print(count)
print(count1)
 
[1, 7, 5, 8, 3, 9]
[1, 3, 5, 7, 8, 9]
In [30]:
count = [-2,-1,0,1,2]
count1 = sorted(count,key=abs)
print(count)
print(count1)
 
[-2, -1, 0, 1, 2]
[0, -1, 1, -2, 2]
In [31]:
# 将列表反转
count = [-2,-1,0,1,2]
count.reverse()
print(count)
 
[2, 1, 0, -1, -2]
 

其他操作

In [32]:
# count() 查看元素在列表中出现的次数
count = [-2,-1,0,1,2,2,-1]
print(count.count(1))
 
1
In [33]:
# len() 返回列表中元素个数
count = [-2,-1,0,1,2,2,-1]
print(len(count))
 
7
In [34]:
#index(),从列表中找出某个值第一个匹配项的索引位置
count = [-2,-1,0,1,2,2,-1]
print(count.index(-1))
 
1
In [37]:
# join() # 用一个字符串将可迭代对象中的字符串连接成字符串
count = ["-2","-1","0","1","2","2","-1"]
print("*".join(count))
 
-2*-1*0*1*2*2*-1
In [38]:
s =[1,2]
temp = "*".join(s) #会报错,数字不能拼接到字符串里
 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-38-b282151d75a5> in <module>()
      1 s =[1,2]
----> 2temp = "*".join(s) #会报错,数字不能拼接到字符串里

TypeError: sequence item 0: expected str instance, int found
 

元组

In [39]:
# 元组就是不可变的列表,元组中的元素不可修改,但他嵌套中的其他数据结构可以改变
# 元组使用()来标识
count=(1,2,3,4)
In [40]:
print(count[0]) # 通过索引访问元组内元素
 
1
In [41]:
count[0] = 1 # 尝试修改元组内元素
 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-41-888f7b3e0f78> in <module>()
----> 1count[0] = 1 # 尝试修改元组内元素

TypeError: 'tuple' object does not support item assignment
In [42]:
count=(4,[1,2,3,4,5],2,1)
count[1][0] = 0 # 修改元组内嵌套的其他数据结构的元素
print(count)
 
(4, [0, 2, 3, 4, 5], 2, 1)
posted @ 2018-03-27 17:28  瓜田月夜  阅读(144)  评论(0)    收藏  举报