Python入门基础:从列表说到字符串

Python中的基本概念:列表和元组

Python中的数据类型主要分为两大类:简单的单一数据类型,比如整型、浮点型和布尔型;负责的容器数据类型,也就是包含多数据类型的一个复合数据,诸如列表list、元组tuple、字典dict、集合set、字符串str等。

列表

列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象,语法为 [元素1, 元素2, ..., 元素n] 。

1. 关键点是「中括号 []」和「逗号 ,」

2. 中括号 把所有元素绑在一起

3. 逗号 将每个元素一一分开

列表可以用函数或者推导式来创建

x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]

print(x, type(x))


x = [[0 for col in range(3)] for row in range(4)]

print(x, type(x))

 

注意:

由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。即使保存一个简单的[1,2,3] ,也有3个指针和3个整数对象。

x = [a] * 4 操作中,只是创建4个指向list的引用,所以一旦a 改变, x 中4个a 也会随之改变。

x = [[0] * 3] * 4

print(x, type(x))


x[0][0] = 1

print(x, type(x))

 

注意:列表不像元组,列表内容可更改 (mutable),因此附加 ( append , extend )、插入 ( insert )、删除 ( remove , pop ) 这些操作都可用。

list.append(obj) 在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在 list中保持着原结构类型;

list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表);

list.insert(index, obj) 在编号 index 位置前插入obj;

list.remove(obj) 移除列表中某个值的第一个匹配项;

remove 和 pop 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引;

del var1[, var2 ……] 删除单个或多个对象。

如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你要在删除元素后还能继续使用它,就使用方法pop() 。

重点学习一下:复制列表中的所有元素(浅拷贝)——:

list1 = [123, 456, 789, 213]

list2 = list1

list3 = list1[:]

print(list2)

print(list3)

list1.sort()

print(list2)

print(list3) 
list1 = [[123, 456], [789, 213]]

list2 = list1

list3 = list1[:]

print(list2)

print(list3)

list1[0][0] = 111

print(list2)

print(list3) 

 

元组

「元组」定义语法为: (元素1, 元素2, ..., 元素n)

1. 小括号把所有元素绑在一起

2. 逗号将每个元素一一分开

1. Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。

2. 元组使用小括号,列表使用方括号。

# 元组和列表类似,元组被创建后不可更改

t1 = (1,10.31,'python')

t2 = 1,103.31,'python'

print(t1,type(t1),' | ',t2,type(t2))

1. 创建元组可以用小括号 (),也可以什么都不用,为了可读性,建议还是用 ()。

2. 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

# 元组中只包含一个元素时,元素后要添加逗号,不然误以为小括号也是元组元素

t00 = 1,

print(t00,type(t00))

 

比较操作符、逻辑操作符、连接操作符 +、重复操作符 *、成员关系操作符 in 、not in
 

'''

索引,获取元组的单个元素

切片,获取一组元素

'''


week = ('Monday','Tuesday','Thursday','Friday')

print(week[0][0],week[0][1])

week = week[:2]+('Wednesday',)+week[2:]

print(week)

# 元组的重复操作符

t12 = (2,3,4,5)

t23 = t12*2

print(t23)

元组大小和内容都不可更改,因此只有 count 和 index 两种方法。

'''

元组的大小不可更改

count:记录某个元素在该元组中出现的次数

index:元素在元组中出现的索引

'''

print(t23.count(3))

print(t23.index(4))

 

如果你只想要元组其中几个元素,用通配符「*」,英文叫 wildcard,在计算机语言中代表一个或多个元素。

# 解压元组,通配符[*]表示一个或者多个元组中的元素

a,b,*rt,d = t23

print(a,' * ',b,' * ',*rt,' * ',d)


print((1,2)*2,type((1,2)*2))

print((1,)*2,type((1,)*2))

print((1)*2,type((1)*2))

字符串

1. Python 中字符串被定义为引号之间的字符集合。

2. Python 支持使用成对的 单引号 或 双引号。

如果字符串中需要出现单引号或双引号,可以使用转义符号\ 对字符串中的符号进行转义。

print(type('5'+'8'))

# str中的转义字符位 \,可以对特殊字符进行转义

print('let\'s go')

print("let's go")

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

# 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符

para_str = """这是一个多行字符串的实例

多行字符串可以使用制表符TAB ( \t )。

也可以使用换行符 [ \n ]。

"""

print (para_str)

拼接

1. 类似于元组具有不可修改性

2. 从 0 开始 (和 C 一样)

3. 切片通常写成 start:end 这种形式,包括「start 索引」对应的元素,不包括「end 索引」对应的元素。

4. 索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素开始计数。最后一个元素的位置编号是 -1。

字符串的常用内置方法有很多,比如capitalize()、lower()、upper()、swapcase()等等,这里取几个不常见的看一下。

1. ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用fillchar (默认空格)填充至长度width 的新字符串。

2. rjust(width[, fillchar]) 返回一个原字符串右对齐,并使用fillchar (默认空格)填充至长度width 的新字符串。

'''

ljust(width[,fillchar])

rjust(width,[,fillchar])

返回一个原字符串左/右对齐,用fillchar填充

'''

str4 = '1101'

print(str4.ljust(8,'0'))

print(str4.rjust(8,'0'))

 

1. lstrip([chars]) 截掉字符串左边的空格或指定字符。

2. rstrip([chars]) 删除字符串末尾的空格或指定字符。

3. strip([chars]) 在字符串上执行lstrip() 和rstrip() 。
 

'''

lstrip([char])、rstrip([char])、strip([char])

删除字符串前后的空格或者指定字符

'''

str5 = ' I love Lsgroup '

print(str5.lstrip())

print(str5.rstrip())

print(str5.strip())

 split(str="", num) 不带参数默认是以空格为分隔符切片字符串,如果num 参数有设置,则仅分隔num 个子字符串,返回切片后的子字符串拼接的列表。
 

# split分割保存

u = 'www.baidu.com.cn'

u1,u2,u3 = u.split('.',2)

print(u1,'\n',u2,'\n',u3)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开香正浓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值