自学Python_Day01


Python的数据类型

5个标准数据类型

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

集合类型

  • 列表
  • 元组
  • 字典

元素与元组的区别

Python中两种基本的数据结构

  • 序列
  • 映射
  • 序列包含可变数列、不可变的元组。映射就是字典
  • 列表和元组只是一类元数据的集合体,而字典是名字来引用值的数据

切片

  • 访问序列元素的另一种方法,可以访问一定范围内的元素

  • sname[start:end:step]

    • sname 序列的名称
    • start 起始位置(包括该位置),默认为0
    • end 截止位置(不包括该位置),不指定默认为序列的长度
    • step 表示步长,默认为1

列表

  • 创建列表 [ , ]
  • 列表内的元素可以是不同数据类型
  • 数组里只能放一种类型的数据
  • Python是最通用的复合型数据
# 创建普通列表
>>> movie=['我和我的祖国','中国机长','哪吒','攀登者']
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> number=[1,2,3,4]
>>> number
[1, 2, 3, 4]

言简意赅,就是定义一个列表,并注明列表中有哪些量,就像是数学中的数组。

# 创建混合列表
>>> mix=[1,"70周年大阅兵",3.14,[12,3,67.9]]
>>> mix
[1, '70周年大阅兵', 3.14, [12, 3, 67.9]]

# 创建空列表
>>> empty=[]    #提前定义一个空列表以后备用
>>> empty
[]

通常可以定义一个空的列表,留作以后备用

给列表添加元素

  • append(附加) 一次只能添加一个元素,在末尾添加
  • extend(延伸) 用新的列表扩展列表
  • insert(插入) 向指定位置添加元素
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> number
[1, 2, 3, 4]

# append是在列表movie最后添加一个元素
>>> movie.append("双子杀手")
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者', '双子杀手']

#  extend是向列表中添加一个列表的元素,适合向列表中添加多个元素
>>> movie.extend(["犯罪现场","急速逃脱"])
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者', '双子杀手', '犯罪现场', '急速逃脱']

# insert是可以向列表中指定位置添加元素
>>> movie.insert(1,"宠爱")
>>> movie
['我和我的祖国', '宠爱', '中国机长', '哪吒', '攀登者', '双子杀手', '犯罪现场', '急速逃脱']
>>> movie.insert(5,"风暴")
>>> movie
['我和我的祖国', '宠爱', '中国机长', '哪吒', '攀登者', '风暴', '双子杀手', '犯罪现场', '急速逃脱']

需要注意的是,使用insert插入数据时,前面的序号,即为元素的编号,称之为索引。索引是以0开始的。所以第一个元素的索引为0,以此类推!

删除列表中的元素

  • remove 必须要知道元素的值
  • del语句 del是一个语句关键字
  • pop 默认删除最后一个元素的值,也可以指定位置元素的值,会返回一个值
# 创建一个列表
>>> movie=['我和我的祖国','中国机长','哪吒','攀登者']
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']

# remove必须要指定元素的值才可以删除
>>> movie.remove("攀登者")
>>> movie
['我和我的祖国', '中国机长', '哪吒']

# del语句删除列表中的元素时,可以不需要知道元素的值
# 只需要知道元素对应的编号,即索引。删除索引对应的元素。
>>> del movie[0]
>>> movie
['中国机长', '哪吒']

# del语句还可以删除整个列表
>>> del movie
>>> movie
Traceback (most recent call last):
  File "<pyshell#44>", line 1, in <module>
    movie
NameError: name 'movie' is not defined

# 创建列表
>>> movie=["我和我的祖国","中国机长","哪吒","攀登者"]
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']

# pop默认删除列表中的最后一个元素
>>> movie.pop()
'攀登者'
>>> movie
['我和我的祖国', '中国机长', '哪吒']

# pop也可以删除指定元素
>>> movie.pop(1)
'中国机长'
>>> movie
['我和我的祖国', '哪吒']

读取列表

  • 列表的取值
  • 读取单个值,利用索引值
  • 获取多个元素的值,切片、截取、分片(slice)
# 创建列表
>>> movie=["我和我的祖国","中国机长","哪吒","攀登者"]
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']

# 列表名[number]即可读取指定元素的值
>>> movie[1]
'中国机长'

# 列表名[number1:number2]即可读取指定范围内的元素的值。
# 不包括索引为number2的元素。就像是我们数学上的半闭半开区间。
>>> movie[1:3]
['中国机长', '哪吒']
>>> movie[:3]
['我和我的祖国', '中国机长', '哪吒']

# 列表名[:]表示列表内的全部元素,可用在列表的拷贝
>>> movie[:]
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> movie2=movie[:]
>>> movie2
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> movie3=movie
>>> movie3
['我和我的祖国', '中国机长', '哪吒', '攀登者']

# 列表名[:number]与指定范围一样,是指定从索引为第0个元素到number个元素。
# 同样不包括number。
>>> movie4=movie[:3]
>>> movie4
['我和我的祖国', '中国机长', '哪吒']

列表的常用操作符

  • 比较操作符
  • 逻辑操作符
>>> list1=[100]
>>> list2=[666]

# 判断list1是否大于list2,False表示否,True表示是
>>> list1>list2    #比较操作符
False

>>> list1=[100,676]
>>> list2=[20,989,77777]

# 在做比较少的时候,只比较索引为0的元素,即列表中的第一个元素
>>> list1>list2
True
>>> list3=[123,456]

# 判断list1>list2 并且 list1<list3?
>>> (list1>list2) and (list1<list3)    #逻辑操作符
True
  • 连接操作符
>>> list1=[123,456]
>>> list2=[321,654]

# 连接操作符,即将两个列表中的元素连接到一个列表中。就像是合并。
>>> list3=list1+list2    #连接操作符
>>> list3
[123, 456, 321, 654]
  • 重复操作符
  • 成员关系操作符
>>> list1=[100]

# 即将某列表重复指定遍输出
>>> list1*3    #重复操作符
[100, 100, 100]

# 将列表中的元素值同等的重复指定遍并保存
>>> list1
[100]
>>> list1*=3
>>> list1
[100, 100, 100]

# 即判断某个元素是否存在于某列表中
>>> list2=["计算机学院","外语学院","商学院","建筑学院"]
>>> 100 in list2    #成员关系操作符
False
>>> 100 not in list2
True
>>> list3=[123,["北京","武汉"],456]
>>> "北京" in list3
False
>>> "北京" in list3[1]
True
  • 当列表中还有列表时,可以使用列表名[num][num]来指定列表中的第几个列表的哪个元素。
>>> list3
[123, ['北京', '武汉'], 456]

# 索引为1的列表中第一个元素元素
>>> list3[1][0]    #类似二维数组
'北京'
>>> list3[1].extend(["西安","十堰","黄冈"])
>>> list3
[123, ['北京', '武汉', '西安', '十堰', '黄冈'], 456]
>>> list3[1][3]
'十堰'

拷贝与分片拷贝

>>> list1=[9,8,7,6,5,4,3,2,1]

# 拷贝即将整个列表复制
>>> list2=list1    #拷贝,类似于变量的赋值操作
>>> list2
[9, 8, 7, 6, 5, 4, 3, 2, 1]

# 分片拷贝是将列表中的某一段复制到另一列表中
>>> list3=list1[:]    #分片拷贝
>>> list3
[9, 8, 7, 6, 5, 4, 3, 2, 1]

排序

  • sort(种类) sort就像是Linux中的功能一样,排序,默认是正序
>>> list1.sort()    #排序
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list2
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list3    #排序不会传递给list3
[9, 8, 7, 6, 5, 4, 3, 2, 1]

访问值、切片(截取/取值)

>>> list=[1,200.99,'Python',True]
>>> list
[1, 200.99, 'Python', True]
>>> print(list[0])    #输出列表的第一个元素
1
>>> print(list[0:3])    #输出列表的0、1、2元素
[1, 200.99, 'Python']
>>> print(list[1:3])    #输出列表的1、2元素
[200.99, 'Python']
  • 需要注意的是,这里的数字并不是代表着列表中第几个元素,而是代表它们的索引。
  • 元素值可以使不同类型,也可以是相同类型。

更新/修改列表

  • 更新列表
>>> list=[1,200.99,'Python',True]
>>> list
[1, 200.99, 'Python', True]

# 指定元素进行修改
>>> list[0]=100    #修改列表的0元素为100
>>> print(list)
[100, 200.99, 'Python', True]
  • 删除列表元素
>>> list=[1,200.99,'Python',True]

# 删除列表中的指定元素
>>> del list[0]    #删除列表的第一个元素
>>> print(list)
[200.99, 'Python', True]
  • 列表相加/组合
>>> list1=[1,200.99,'Python',True]
>>> list2=['A','B','C']

# 即将两个列表中的元素合并
>>> print(list1+list2)    #两个列表相加
[1, 200.99, 'Python', True, 'A', 'B', 'C']
  • 列表相乘
>>> list=[1,200.99]

# 与列表的重复操作相同,是将元素重复制定次
>>> print(list*3)    #列表元素乘3
[1, 200.99, 1, 200.99, 1, 200.99]
  • 输出最小、最大、长度
>>> list1=[1,200.99,True]
>>> print(min(list1))    #输出列表最小元素
1
>>> print(max(list1))    #输出列表最大元素
200.99
>>> print(len(list1))    #输出列表长度,即元素个数
3

min——minimum(最小)
max——maximum(最大)
len——length(长度)

成员检查

  • 与列表的成员关系操作符相同
>>> list=[1,200.99]
>>> print(6 in list)    #检查元素6是否在list列表中
False
>>> print(1 in list)    #检查元素1是否在list列表中
True

函数

list函数

>>> name="Hello"
>>> print(list('Hello'))    #将元祖转换为列表,使用单引号
['H', 'e', 'l', 'l', 'o']
>>> print(list(name))
['H', 'e', 'l', 'l', 'o']

count()函数

  • 统计列表中某元素出现的次数
>>> list=[1,2,3,3,3]

# 统计list列表中元素3出现的次数
>>> print(list.count(3))
3

extend()函数

  • 修改原序列,连接两个序列产生新的序列
>>> list1=[1,2,3,3,3,]
>>> list2=['a','b','c']

# 即将list2中的元素拓展到列表list1中
>>> list1.extend(list2)
>>> print(list1)
[1, 2, 3, 3, 3, 'a', 'b', 'c']
>>> print(list2)
['a', 'b', 'c']

append()函数

  • 往列表的最后一个位置插入(入栈)操作
>>> list=[1, 2, 3, 3, 3]

# 向列表list最后插入一个元素
>>> list.append('Python')
>>> print(list)
[1, 2, 3, 3, 3, 'Python']

insert()函数

  • 将元素插入到列表的指定位置
>>> list=[1,2,3,3,3,]

# 向list列表中第二个位置插入元素
>>> list.insert(1,'Python')
>>> print(list)
[1, 'Python', 2, 3, 3, 3]

pop()函数

  • 删除指定位置元素
>>> list=[1,2,3,3,3,]

# 默认删除列表的最后一个元素,并将删除的元素打印出来
>>> list.pop()
3
>>> print(list)
[1, 2, 3, 3]

# 指定删除索引为1的元素
>>> list.pop(1)
2
>>> print(list)
[1, 3, 3]

pop()函数默认删除的是最后一个元素(出栈

remove()函数

  • 删除列表中某一个值的第一个匹配选项
>>> list=[1,2,3,3,3,]

# 删除列表中第一个匹配到的3,即原索引为2的元素
>>> list.remove(3)
>>> print(list)
[1, 2, 3, 3]
>>> 
  • 删除列表中所有的匹配项
list=[1,2,3,3,3]
while 3 in list:
    list.remove(3)
print(list)
  • 这里使用了一个while循环,所以需要在新的模块写。File——New File
  • 然后再写入以上代码,注意循环所做的语句一定要空四格,或者按一个Tab。gou肉肉一提醒我就想起来Tab也是四个空格了。
  • 然后需要保存,再运行。Run——Run Module

reverse()函数

  • 翻转列表
list=[1,2,3,3,3]
list.reverse()
print(list)
  • 对元素进行排序
>>> list=[1,5,3,9,6]
>>> print(list.reverse())
None
  • reverse(颠倒),即将列表中的元素颠倒顺序
  • print(list.reverse())的输出为None,是因为reverse()没有返回值

index()函数

  • 从列表中找出与某个元素匹配的第一个匹配项的位置
>>> list=[1,2,3,3,3,3,3,3,3]
>>> print(list.index(3))
2

# 表示匹配list列表中元素3在4-8这个索引范围内第一次匹配到的位置
>>> print(list.index(3,4,8))
4

sort()函数

  • 元素进行排序
>>> list=[100,80,200,1]
>>> list.sort()
>>> print(list)
[1, 80, 100, 200]
>>> list=[100,80,200,1]
>>> print(list.sort())
None

print(list.sort())输出为None,因为sort()没有返回值

以上内容纯属自学,如有错误或不详,敬请指出!
本文作者: 坏坏
原文地址:https://www.cnblogs.com/bad5/p/12424295.html