Python基础知识_day3_列表

文章目录

  • 1. 可变字符串
  • 2. 序列
  • 3. 列表
    • 3.1 list() 创建列表
    • 3.2 range() 创建整数列表
    • 3.3 列表推导式
    • 3.4 列表操作
      • 3.4.1 扩展
      • 3.4.2 删除
      • 3.4.3 索引
      • 3.4.4 count()
      • 3.4.5 排序
      • 3.4.5 大小比较
  • 4. 元组

1. 可变字符串

在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用io.StringIO对象或array模块

import io
s = 'hello world'
ios = io.StringIO(s)
print(ios.getvalue()) #获取值
ios.seek(6) #移动光标到第六个字符
ios.write('CHINA') #从第六个字符开始写入
print(ios.getvalue()) # hello CHINA
#通过io模块,实现字符串的修改,并没有重新创建

运算符补充

a=7
print(3<a<10) #True

2. 序列

序列是一种数据存储方式,用来存储一系列的数据。

常用的序列结构包括:字符串、列表、元组、字典、集合

  • 举例说明

列表 a = [10,20,30,40]

内存中先创建10,20,30,40 四个对象,然后把四个对象的地址依次存到列表中
Python基础知识_day3_列表_第1张图片从图示中,我们可以看到序列中存储的是整数对象的地址,不是整数对象的值

3. 列表

3.1 list() 创建列表

将任何可迭代的数据转化成列表

print(list('我学python'))
# [ '我', '学', 'p', 'y', 't', 'h', 'o', 'n']
print(list(range(1,10)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

3.2 range() 创建整数列表

print(list(range(10,1,-1)))
# [10, 9, 8, 7, 6, 5, 4, 3, 2]
# range 默认从小到大,从大到小,步长为负

3.3 列表推导式

a = [x**2 for x in range(10)]
print(a)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
b = [x**2 for x in range(10) if x%2 == 0]
print(b)
# [0, 4, 16, 36, 64]

3.4 列表操作

3.4.1 扩展

append, insert, extend 对原列表进行操作

  • 加法,乘法扩展

但使用+,*号进行拼接,会创建一个新的列表对象,如下所示,拼接前后,变量a所指向的内存地址发生了变化

a = [10,20]
print(id(a)) #3116689118208
a = a + [30]
print(a) #[10, 20, 30]
print(id(a)) #3116689118656

3.4.2 删除

del, pop, remove 对原列表进行操作

3.4.3 索引

index()可以获得指定元素首次出现的索引位置,还可以指定搜索的范围

a = [3,3,2,4,3]
print(a.index(3,1,4)) #1

3.4.4 count()

指定元素在列表中出现的次数

a = [12,3,2,4,3]
print(a.count(3)) #2

3.4.5 排序

  • sort, reverse,random.shuffle 都是对原列表进行操作

随机排序

import random
a = [1,3,8,4,6]
print(id(a)) #2941071840064
random.shuffle(a)
print(a) #[6, 1, 4, 8, 3]
print(id(a)) #2941071840064
  • 内置方法 sorted 排序,生成新的列表
a = [1,3,8,4,6]
print(id(a)) #1788263846848
a = sorted(a)
print(a)
print(id(a)) #1788263847616

3.4.5 大小比较

内置方法 max, min, sum

4. 元组

元组属于不可变序列,不可修改元组中的元素。

a= 10,20,30 #中括号可不写
print(type(a)) #
b = 40, #元组中只有一个原素,逗号要跟上
print(type(b)) #

修改元组中的元素。

a= 10,20,30 #中括号可不写
print(type(a)) #
b = 40, #元组中只有一个原素,逗号要跟上
print(type(b)) #

你可能感兴趣的:(Python基础知识,python)