python基础知识整理 02-字符串、列表、元组

目录

1 字符串

1.1 概念

1.2 字符串操作

1.2.1 len()获取长度

1.2.2 字符串运算 + 和 *

1.2.3 使用[]提取字符

1.2.4 切片[start:end:step]

1.2.5 split()分割

1.2.6 replace()替换

1.2.7 字符串大小写

1.2.8 字符串遍历

1.2.9 isalpha()和isdigit()函数

2 列表

2.1 概念

2.2 列表创建

2.3 列表嵌套

2.4 列表操作

2.4.1 列表遍历

2.4.2 append()添加元素

2.4.3 extend()或 += 合并列表

2.4.4 insert()指定位置插入元素

2.4.5 del删除指定位置元素

2.4.6 remove()删除指定值

2.4.7 pop()获取并删除指定位置元素

2.4.8 index()查询值位置

2.4.9 count()值出现次数

2.4.10 join()转换为字符串

2.5 列表推导式

3 元组


1 字符串

1.1 概念

字符串本质是字符序列。

Python的字符串是不可修改的。无法对原字符串进行修改,但是可以将字符串的一部分赋值到新字符串,来达到相同的修改效果。

符串或串(String)是由零个或多个字符组成的有限序列。它是编程语言中表示文本的数据类型。python中字符串的表现形式为包含在单引号或者双引号中的字符序列。

1.2 字符串操作

1.2.1 len()获取长度

>>> a = "abcd"
>>> len(a)
4

1.2.2 字符串运算 + 和 *

使用+可以将多个字符串或字符串变量拼接起来,也可以直接将一个字符串变量放到另一个的后面直接实现拼接。

使用*可以进行字符串复制。

>>> a = "ab"
>>> b = "ac"
>>> a + b
'abac'

>>> a * 2
'abab'

1.2.3 使用[]提取字符

在字符串名后面添加[],并在括号里指定偏移量可以提取该位置的单个字符。

注意:

第一个字符的便宜量为0,下一个是1,以此类推。最后一个字符的偏移量可以使用-1来表示,这样就不必从头数到尾。偏移量从右向左紧接着为-2、-3,以此类推。

如果指定的字符串超过了字符串的长度,会得到一个错误提示:string index out of range.

>>> a = "abcdefg"
>>> a[0]
'a'
>>> a[1]
'b'
>>> a[-1]
'g'
>>> a[10]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: string index out of range

1.2.4 切片[start:end:step]

从一个字符串抽取一个子字符串(字符串的一部分)。我们使用一对方括号,起始偏移量start,和终止偏移量end以及可选的步长step来定义一个分片。其中一些参数可以省略。分片将会得到start开始到end结束之前全部的字符。

  • [:] 提取从开头到结尾的整个字符串;
  • [start:] 提取从start开始到结尾的所有字符串;
  • [:end] 从开头提取到end-1之间所有字符;
  • [start:end] 从start提取到end-1;
  • [start:end:step] 从start到end-1,每step个字符提取一个.
>>> a = 'abcdefgh'
>>> a[:]
'abcdefgh'
>>> a[2:]
'cdefgh'
>>> a[:5]
'abcde'
>>> a[2:5]
'cde'
>>> a[1:6:2]
'bdf'

1.2.5 split()分割

split()可以基于分隔符将字符串分割成若干子串组成的列表

>>> s = "ab,cd,ef,ghk"
>>> s.split(",")
['ab', 'cd', 'ef', 'ghk']

1.2.6 replace()替换

replace()函数可以将指定的字符串替换其他的字符串,并生成新的字符串。

replace(old,new,count)

old:被替换的内容

new:替换内容

count:最多替换次数,可不传参数

s = "ab,cd,ef,ghk"

>>> s.replace(',', '1')
'ab1cd1ef1ghk'
>>> s.replace(',', '1', 2)
'ab1cd1ef,ghk'

1.2.7 字符串大小写

  • capitalize():字符串首字母变成大写
  • title():让所有的单词的开头字母变成大写
  • upper():所有字母变成大写
  • lower():所有字母变成小写
>>> a = 'python'
>>> a.capitalize()
'Python'
>>> b = 'hello python'
>>> b.title()
'Hello Python'
>>> c = 'python'
>>> c.upper()
'PYTHON'
>>> d = 'PYTHON'
>>> d.lower()
'python'
1.2.8 字符串遍历

1.2.8 字符串遍历

my_string = "abcdefg"
# 1. 遍历字符串while方式
index = 0
while index < len(my_string):
    print(my_string[index], end="|")
    index += 1

print()
# 2. 遍历字符串for方式
for ch in my_string:
    print(ch, end="|")

1.2.9 isalpha()和isdigit()函数

  • isalpha()函数可以检测字符串是否都是字母,如果都是字母则返回True,否则返回False.
  • isdigit()函数可以检测字符串是否都是数字,如果是则返回True,否则返回False.
  • isalnum()函数检测字符串是否由字母和数字组成.
  • isspace()函数检测字符串是否全是空格.

2 列表

2.1 概念

列表非常适合利用顺序和位置定义某一个元素,尤其是当元素的顺序或内容经常发生改变的时候。与字符串不同,列表中元素的值是可以修改的。我们可以直接对列表中进行添加新元素、删除元素、或覆盖已有的元素。

2.2 列表创建

可以使用[]来创建一个列表,也可以使用list函数来创建一个空列表。

list1 = [] 
list2 = list()

2.3 列表嵌套

一个列表中的元素又是一个列表,那么这就是列表的嵌套。

schoolNames = [ ['北京大学', '清华大学'], ['南开大学', '天津大学', '天津师范大学'], ['山东大学', '中国海洋大学'] ]

2.4 列表操作

2.4.1 列表遍历

遍历列表中的元素,我们可以使用while循环或者for循环来遍历,如下:

namelist = ["Edward", "Smith", "John", "Obama", "Polly"]

# 1. while循环方式
index = 0
while index < len(namelist):
    print(namelist[index], end=" ")
    index += 1
print()

# 2. for循环方式
for name in namelist:
    print(name, end=" ")

2.4.2 append()添加元素

append()函数将元素一个个添加到尾部

>>> list = [1, 'a']
>>> list.append(2)
>>> print(list)
[1, 'a', 2]

2.4.3 extend()或 += 合并列表

extend()可以将一个列表合并到另一个列表中,我们也可以使用+=

>>> list1 = ['a', 1]
>>> list2 = ['b', 2]
>>> list3 = ['c', 3]
>>> list1.extend(list2)

>>> print(list1)
['a', 1, 'b', 2]
>>> list3 += list2
>>> print(list3)
['c', 3, 'b', 2]

2.4.4 insert()指定位置插入元素

append()只能将新元素插入到列表尾部,insert()可以将元素插入到列表的任意位置。

insert(index,object),index插入元素的位置,object要插入的元素

指定index参数为0,就可以将元素插入到列表头部,如果指定的第一个参数偏移量大于列表长度,则会插入到列表尾部。

>>> list1 = ['a', 1]
>>> list1.insert(1, 'b')
>>> print(list1)
['a', 'b', 1]
>>> list1.insert(5, 2)
>>> print(list1)
['a', 'b', 1, 2]

2.4.5 del删除指定位置元素

del是python语句,而不是列表方法,无法通过list来调用。使用del可以删除一个元素,当元素删除之后,位于它后面的元素会自动移动填补空出来的位置。

>>> list1 = ['a', 'b', 1, 2]
>>> del list1[1]
>>> print(list1)
['a', 1, 2]

2.4.6 remove()删除指定值

如果不确定或不关心元素在列表中的位置,可以使用remove()根据指定的值来删除元素。

>>> list1 = ['a', 1, 'b']
>>> list1.remove('b')
>>> print(list1)
['a', 1]

2.4.7 pop()获取并删除指定位置元素

使用pop()同样可以获取列表中指定位置的元素,但在获取完成之后,该元素会自动被删除。

如果为pop(off)指定了偏移量,它会返回偏移量对应位置的元素。

如果不指定,则默认使用-1。因此pop(0)将返回头元素,而pop()或pop(-1)则会返回列表的尾元素。

>>> list1 = ['1', 'a', 2, 'b', 'c', 'd']
>>> list1.pop(1)
'a'
>>> print(list1)
['1', 2, 'b', 'c', 'd']
>>> list1.pop()
'd'
>>> print(list1)
['1', 2, 'b', 'c']

2.4.8 index()查询值位置

如果想知道等于某一个值的元素在列表中的位置,可以使用index()查询

>>> list1 = ['1', 'a', 2, 'b', 'c', 'd'] 
>>> list1.index('b') 
3

2.4.9 count()值出现次数

count()可以记录某一个元素在列表中出现的次数

>>> list1 = ['a', 'b', 'a', 'c', 'd'] 
>>> list1.count('a') 
2

2.4.10 join()转换为字符串

join其实是一个string的方法,而不是列表方法,不能通过list.join(“,”)进行调用

>>> list1 = ['aa', 'bb', 'cc']
>>> "".join(list1)
'aabbcc'
>>> "-".join(list1)
'aa-bb-cc'

2.5 列表推导式

>>> list1 = [n for n in range(5)]
>>> print(list1)
[0, 1, 2, 3, 4]

3 元组

与列表类似,元组也是由任意类型元素组成的序列。

与列表不同的是,元组是不可改变,这意味着一旦元组被定义,将无法再进行增加、删除或修改元素等操作。因此,元组就像一个不可改变的列表.

在许多地方元组都可以替换列表,但元组的方法函数比列表要少一些,元组没有append()、insert()等等,因为一旦创建元组便无法修改。

既然列表更加灵活,那为什么不在所有地方都使用列表呢?

  • 元组占用空间较小;
  • 不会意外修改元组的值;
# 创建元组
my_tuple = (1, 2, 3, 4, 5)

# 访问元组中的元素
print(my_tuple[0])
print(my_tuple[1])

# while循环访问元组中元素
index = 0
while index < len(my_tuple):
    print(my_tuple[index])
index += 1

# 遍历元组
my_list1 = ("John", 12, "Obama", 88)
for ein my_list1:
    print(e)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

轨迹|

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

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

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

打赏作者

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

抵扣说明:

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

余额充值