datewhale python Day2

  1. 列表
    1.1 列表的概念
    列表(list)是由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。
list_01=['apple','orange',3,100,[2,'blue']]  #列表演示:该列表包含了字符串、数字、子列表。

1.2 列表元素的访问
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
注意:索引从0开始

list_01=['apple','orange',3,100,[2,'blue']]
print(list_01[0])
print(list_01[1])
print(list_01[2])
print(list_01[4][0])   #注意此处访问了子列表的元素
依次得到:
apple
orange
3
2

1.3 列标元素的添加
1.3.1 append方法: 在列表末尾添加元素

names=['david','lucy','mike']
names.append('johnson')
print(names)
得到:
['david', 'lucy', 'mike', 'johnson']

1.3.2 insert方法: 在列表中插入元素(需要提供索引和所要添加的元素)

names=['david','lucy','mike']
names.insert(1,'johnson')
print(names)
得到:
['david', 'johnson', 'lucy', 'mike']

1.3.3 extend方法: 合并两个列表(需要提供待合并的列表)

names_01=['david','mike']
names_02=['lucy','johnson']
names_01.extend(names_02)
print(names_01)
得到:
['david', 'mike', 'lucy', 'johnson']

1.4 列表元素的删除
1.4.1 del语句:知道元素在列表中的位置(需要提供索引)

names=['david','lucy','mike']
del  names[1]
print(names)
得到:
['david', 'mike']

1.4.2 remove方法:知道元素的名称

names=['david','lucy','mike']
names.remove('lucy')
print(names)
得到:
['david', 'mike']

1.4.3 pop方法:‘弹’出元素(需要提供索引)

names=['david','lucy','mike']
object=names.pop()   #方法pop() 不加索引时可删除列表末尾的元素,并让你能够接着使用它。
print(object)
print(names)
得到:
mike
['david', 'lucy']
names=['david','lucy','mike']
object=names.pop(1)   #方法pop() 加索引时可以弹出任意元素
print(object)
print(names)
得到
lucy
['david', 'mike']

1.5 列表的拷贝
深拷贝:包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变。

names=['david','lucy','mike']
names_copy=names[:]   #创建列表names的副本names_copy
print(names)
print(names_copy)
得到:
['david', 'lucy', 'mike']
['david', 'lucy', 'mike']

浅拷贝:没有拷贝子对象,所以原始数据改变,子对象会改变。

names=['david','lucy','mike']
names_copy=names  #这种语法实际上是让Python将新变量names_copy 关联到包含在names中的列表,因此这两个变量都指向同一个列表。对其中一个列表的操作将影响另一个列表。
names.pop()
print(names)
print(names_copy)
得到:
['david', 'lucy']
['david', 'lucy']

1.6 遍历列表:for循环

names=['david','lucy','mike']
for name in names:
     print(name)
得到:
david
lucy
mike

1.7 列表的切片

names=['david','lucy','mike','johnson']
print(names[:])  #打印整个列表
print(names[1:3])  #打印第1至2个元素
print(names[:2])  #没有指定第一个索引,Python将自动从列表开头开始
print(names[1:])  #没有指定第二个索引,Python将自动至最后一个元素截止
print(names[-3:])  #打印最后三个元素
依次得到:
['david', 'lucy', 'mike', 'johnson']
['lucy', 'mike']
['david', 'lucy']
['lucy', 'mike', 'johnson']
['lucy', 'mike', 'johnson']

1.8 其他常用的列表方法
1.8.1 排序问题

names=['david','lucy','mike','johnson']
names.sort()   #按照字母顺序排序
print(names)
nums=[1,4,5,3,10,7,0]  #按照数字大小排序
nums.sort()
print(nums)
依次得到:
['david', 'johnson', 'lucy', 'mike']
[0, 1, 3, 4, 5, 7, 10]
names=['david','lucy','mike','johnson']
names.sort(reverse=True)   #按照字母顺序反向排序
print(names)
nums=[1,4,5,3,10,7,0]  
nums.sort(reverse=True) #按照数字大小反向排序 
print(nums)
依次得到
['mike', 'lucy', 'johnson', 'david']
[10, 7, 5, 4, 3, 1, 0]
names=['david','lucy','mike','johnson']
print(sorted(names))    #使用sorted进行临时排序,原列表依然存在。
print(names)
nums=[1,4,5,3,10,7,0]  
print(sorted(nums))     #使用sorted进行临时排序,原列表依然存在。 
print(nums)
依次得到:
['david', 'johnson', 'lucy', 'mike']
['david', 'lucy', 'mike', 'johnson']
[0, 1, 3, 4, 5, 7, 10]
[1, 4, 5, 3, 10, 7, 0]

1.8.2 倒着打印列表(注意: 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序)

names=['david','lucy','mike','johnson']
names.reverse()
print(names)
得到:
['johnson', 'mike', 'lucy', 'david']

1.8.3 确定列表的长度

names=['david','lucy','mike','johnson']
print(len(names))
得到:
4

1.8.4 数字列表的生成

for  num  in  range(1,11):
      print(num)
得到:
1
2
3
4
5
6
7
8
9
10
#输出1-10的平方:
values=[]
for  num  in  range(1,11):
      result=num**2
      values.append(result)
print(values)
得到:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2 元祖
2.1 元祖的概念:不可改变的列表,用()表示。
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

#元祖的创建和修改演示
original_tuple=(1,2,3,4)
modified_tuple=(1,2,3,4,5)
print(original_tuple)
print(modified_tuple)
依次得到:
(1, 2, 3, 4)
(1, 2, 3, 4, 5)

2.2 序列的转化

nums_01=(1,2,3,4)
print(nums_01)
print(list(nums_01))
nums_02=[5,6,7,8]
print(nums_02)
print(tuple(nums_02))
string=’hello world‘
print(list(string))
nums=['1','2','3','4']
a=''.join(nums)
print(a)
依次得到:
(1, 2, 3, 4)
[1, 2, 3, 4]
[5, 6, 7, 8]
(5, 6, 7, 8)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
1234

2.3 元祖的常用方法:同列表
2.4 其他常用的序列方法:求最值、求和

a=[1,2,3,4,5,6]
print(max(a))
print(min(a))
print(sum(a))
依次得到:
6
1
21

作业:定义一个列表,包含自己的家庭成员,并在指定位置插入给定元素,例如你的男女朋友名称等。再将男女朋友名字移除等操作。

my_family=['mom','dad','sister','brother']
my_family.pop()
print(my_family)
my_family.append('girlfriend')
print(my_family)
del my_family[0]
print(my_family)
my_family.insert(0,'mom')
print(my_family)
依次得到:
['mom', 'dad', 'sister']
['mom', 'dad', 'sister', 'girlfriend']
['dad', 'sister', 'girlfriend']
['mom', 'dad', 'sister', 'girlfriend']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值