python基础-数据结构及数据读取操作

python基础-字符串、列表、字符串

一、字符串(String):

在python中,除了整数和浮点数外,还有字符串。任何被单引号或者双引号括起来的内容都可以人为是字符串,字符串也可以复制给变量;
string_1 = '我是字符串' #字符串中可以是任意的内容
string_2 = '' #空字符串
string_3 = ' ' #字符串中是空格

二、列表(list):

- 列表是Python中的一个对象,由方括号和括起来的数据组成。
- 对象(object)就是内存中专门用来存储数据的一块区域
- 列表中可以保存多个有序的数据,数据的类型可以是整数、浮点数、字符串、也可以是列表或者其他数据。
- 列表是用来存储对象的容器。
- 列表中的每一项叫做列表的元素,每个元素之间使用 英文逗号隔开。
- 列表创建方法:
list _1 = [] # 创建了一个空列表
list_2 = [1,2,3,4,5] #创建一个有五个元素的列表,五个元素都是数字
list_3 = [123 , '嘻嘻哈哈'[123,'ded'] ] #创建一个多钟元素混合的列表

三、元组(Tuple):不可变序列

元组是Python里面的容器之一。有小括号和小括号里面的数据构成,它的外形和列表非常相似,只不过列表是使用方括号,而元组使用的是小括号,元组中的元和二元一次方程中的元是同一个意思,组就是组合的意思。
一般当我们希望数据不改变时,就使用元组,其余情况都使用列表。

创建元组

# 创建元组
# 使用()来创建元组
my_tuple = () # 创建了一个空元组
# print(my_tuple,type(my_tuple)) # <class 'tuple'>

my_tuple = (1,2,3,4,5) # 创建了一个5个元素的元组
# 元组是不可变对象,不能尝试为元组中的元素重新赋值
# my_tuple[3] = 10 TypeError: 'tuple' object does not support item assignment
# print(my_tuple[3])

# 当元组不是空元组时,括号可以省略
# 如果元组不是空元组,它里边至少要有一个英文逗号
my_tuple = 10,20,30,40
my_tuple = 40,
# print(my_tuple , type(my_tuple))

  • 元组和列表的区别:列表生成以后,还可以往里面继续添加数据。也可以从里面删除数据。元组一但生成就不能修改。如果里面只有整数,浮点数,字符串,另一个元组,就既不能添加数据也不能删除数据。还不能修改里面的数据的值。如果元组里面包含了一个列表,那么这个元组里面的列表依旧可以变化。

四、数据的读取:

1.切片
切片是指从现有的列表中,获取一个子列表
创建一个列表时,一般变量名使用复数
列表的索引可以是负数
如果索引是负数,则从后向前获取元素,-1表示倒数第一个,-2表示倒数第二个 以此类推

通过切片来获取指定的元素
语法:
列表[起始:结束:步长]

  • 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
  • 做切片操作时,总会返回一个新的列表,不会影响原来的列表
  • 起始和结束位置的索引都可以省略不写
  • 如果省略结束位置,则会一直截取到最后
  • 如果省略起始位置,则会从第一个元素开始截取
  • 如果起始位置和结束位置全部省略,则相当于创建了一个列表的副本
  • 步长可以是负数(从后向前取元素),但是不可以为零。
2.通用操作

在这里插入图片描述

1.  + 可以将两个列表拼接为一个列表
     # my_list = [1,2,3] + [4,5,6]
2.  * 可以将列表重复指定的次数
      # my_list = [1,2,3] * 5
3.  in  用来检查指定元素是否存在于列表中
    如果存在,返回True,否则返回False
4.  not in 用来检查指定元素是否不在列表中
          如果不在,返回True,否则返回False
5.  len()获取列表中的元素的个数
6.  min() 获取列表中的最小值
7.  max() 获取列表中的最大值
8.   s.index() 获取指定元素在列表中的第一次出现时索引
	   index()的第二个参数,表示查找的起始位置 , 第三个参数,表示查找的结束位置
		如果要获取列表中没有的元素,会抛出异常
9.  s.count() 统计指定元素在列表中出现的次数

3.修改元素(只适用于可变序列)

在这里插入图片描述

  1. 通过索引修改元素
  2. 通过 del 删除元素
  3. 通过切片来修改列表
  4. 使用 append() 向列表的最后添加一个元素
  5. insert() 向列表的指定位置插入一个元素
    参数:
    1.要插入的位置
    2.要插入的元素
    stus.insert(2,‘嘻嘻哈哈哈’)
  6. extend() 使用新的序列来扩展当前序列,需要一个序列作为参数,它会将该序列中的元素添加到当前列表中
    stus.extend([‘唐僧’,‘白骨精’])
    stus += [‘唐僧’,‘白骨精’]
  7. clear() 清空序列
    stus.clear()
  8. pop() 根据索引删除并返回被删除的元素
result = stus.pop(2) # 删除索引为2的元素
result = stus.pop() # 删除最后一个
print('result =',result)
  1. remove()
    删除指定值得元素,如果相同值得元素有多个,只会删除第一个
    stus.remove(‘嘻嘻哈哈’)
  2. reverse() 用来反转列表
    stus.reverse()
  3. sort()
    用来对列表中的元素进行排序,默认是升序排列
    如果需要降序排列,则需要传递一个reverse=True作为参数
4.遍历列表

遍历列表:将列表中的所有的元素都取出来
方法一:

# 通过while循环来遍历列表
i = 0
while i < len(stus):
    print(stus[i])
    i += 1

方法二:

通过for循环来遍历列表
语法:
  for 变量 in 序列 :
      代码块
for循环的代码块会执行多次,序列中有几个元素就会执行几次
  没执行一次就会将序列中的一个元素赋值给变量,
  所以我们可以通过变量,来获取列表中的元素

range函数介绍:用来生成一个自然数的序列。
该函数需要三个参数

  • 起始位置(可以省略,默认是0)
  • 结束位置
  • 步长(可以省略,默认是1)
#创建示例
r = range(5) # 生成一个这样的序列[0,1,2,3,4]
r = range(0,10,2)
r = range(10,0,-1)
  • 通过range()可以创建一个执行指定次数的for循环
5.解包(解构)

解包指就是将元组当中每一个元素都赋值给一个变量

a = 100
b = 300
# print(a , b)

# 交互a 和 b的值,这时我们就可以利用元组的解包
a , b = b , a
# print(a , b)

# 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
# 也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素,但是不能同时出现两个或以上的*变量

 
原文地址:https://www.cnblogs.com/tianyao2020/p/12755248.html