内置数据结构:
str
字符串
list
列表
tuple
元组
dict
字典
set
集合
字符串
常见字符串操作:
创建字符串很简单,只要为变量分配一个值即可,使用引号
('
或
")
来创建字符
串。
var1 = 'Hello World!' #
单字符在
Python
中也是作为一个字符串使用。
str1 = “hello python”
1
、字符串求长度:
len(str1);
2
、字符串拼接:
+ 'Jack'*3
重复创建相应的字符串
3
、字符串遍历:
for a in str1
4
、字符串包含判断:
if ('a' in sample_str7) ==>true /false
5
、字符串索引:
正向索引:
str1[0] str1[1] str[2]
反向索引:
str1[-1] str1[-2] str1[-3]
注意:虽然索引可以获得该顺序上的字符,但是不能够通过该索引去修改
对应的字符
6
、字符串切片:
str1[start:end:step] ==
》
str1[0:4]
获取索引为
0-4
之间的字符串,从索引
0
开始到
3
为止
str1 = "nihao wohao dajiahao"
print(str1[6:11]) #
直接指定下标切片获取数
6
是起始下标
11
是终止下标
print(str1[0:11:2]) #
其中
2
是移动的步长,默认是
1
print(str1[:5]) #
下标
5
之前的所有数据
print(str1[5:]) #
下标
5
以后的所有数据
常见字符串内置函数:
(1)str.strip([chars]) ==
》
print(sample_fun1.strip()) #默认去掉首尾空格
print(sample_fun1.strip('#')) #指定首尾需要删除的字符
(2)str.count('chars',start,end) 统计chars
字符串或者字符在
str
中出现的次数, 从start
顺序开始
查找一直到end
顺序范围结束,默认是从顺序
0
开始
(3)str.capitalize() 将字符串的首字母大写
(4)str.upper() 将字符串中的字母全部转换成大写字母
(5)str.isupper()
判断字符串是否全是大写
(6)str.low() 将字符串中的字母全部转换成小写字母
(7)str.islower()
判断字符串是否全是小写
(8)str.find('str',start,end) 查找并返回子字符'str'
在
start
到
end范围内的顺序, 默认范围是从
字符串的头开始到尾结束。
(9)str.index('str',start,end) 同上,但没有字符会报错
(10)str.replace(oldstr, newstr,count) 用旧的子字符串替换新的子字符串,若不指定count默
认全部替换
(11)str.split(sep,maxsplit)将字符串按照指定的sep
字符进行分割,
(12)maxsplit
是指定需要分割的次数,若不指定
sep
默认是分割空格。
(13)str.isalnum()
字符串是由字母或数字组成则返回
true
否则返回
false
(14)str.isalpha()
字符串是否全是由字母组成的
(15)str.isdigit()
字符串是否全是由数字组成,是则返回
true
,否则返回
false
字符串练习题:
1,计算用户输入的字符串内容中有几个十进制数字?几个字母?
s = input("请输入字符串:")
a = 0
b = 0
for i in s:
if (i.isalpha()):
a +=1
elif(i.isdigit()):
b +=1
print("输入的字符串中字母个数为:",a)
print("输入的字符串中数字个数为:",b)
运行结果:
请输入字符串:qwedwkjdo12323r4q
输入的字符串中字母个数为: 11
输入的字符串中数字个数为: 6
>>>
列表
list
使用:
原因:
1
、大量数据需要处理
==
》大容量存储
2
、不同类型数据需要处理
==
》兼容存储
创建:
1
、
使用
[ ]
直接创建列表
listname = [element1 , element2 , element3 , ... , elementn]
其中,
listname
表示变量名,
element1 ~ elementn
表示列表元素。
2
、
使用
list()
函数创建列表
提供了一个内置的函数
list()
,使用它可以将其它数据类型转换为列表类型。
#
将字符串转换成列表
list1
=
list
(
"hello"
)
print
(
list1
)
#
将元组转换成列表
tuple1
= (
'Python'
,
'Java'
,
'C++'
,
'JavaScript'
)
list2
=
list
(
tuple1
)
print
(
list2
)
#
将字典转换成列表,最终列表中只有键没有值
dict1 = {
'a'
:
100
,
'b'
:
42
,
'c'
:
9
}
list3 = list(dict1)
print(list3)
#
将区间转换成列表
range1
=
range
(
1
,
6
)
list4
=
list
(
range1
)
print
(
list4
)
使用部分:增->删->改->查
1、增加
内置的
append()
方法来添加到尾部,
>>> L = [12, 'China', 19.998]
>>> L.append('Jack')
#追加到末尾
>>> print L
[12, 'China', 19.998, 'Jack']
3/18
通过
list
.
insert
(
index
,
obj
)
方法添加到指定位置(下标从
0
开始)
>>> L.insert(1, 3.14)
#指定位置插入指定的值
>>> print L
[12, 3.14, 'China', 19.998, 'Jack']
2、删除
通过
pop()
删除最后尾部元素,也可以指定一参数删除指定位置:
>>> L.pop()
'Jack'
>>> print L
[12, 3.14, 'China', 19.998]
>>> L.pop(0)
#末尾删除,指定下标删除
12
>>> print L
[3.14, 'China', 19.998]
list
.
remove
(
obj
)
#指定值删除
remove()
函数用于移除列表中某个值的
第一个匹配项
。
3、修改
也可以
通过下标进行赋值替换
lt = [1,2,3,'a','g',3]
lt[3] = 'j'
print(lt)
[1, 2, 3, 'j', 'g', 3]
>>>
4、查找
if x in L:
xxx
else:
yyy
lt = [1,2,3,'a','g',3]
if 3 in lt:
print("in,index = ", lt.index(3) ) 打印出下标
else:
print("not in")
in,index = 2
>>
列表练习题:
1、设计一个程序,可以输入用户名,将所有输入的用户加入列表,当输入的是0的时候,结束输入操作并将所有列表用户输出
lt = ["张三","李四","rose"]
while True:
a = input("请输入新的用户名:")
if a == '0':
break
else:
lt.append(a)
print(lt)
运行结果:
请输入新的用户名:haha
请输入新的用户名:nike
请输入新的用户名:0
['张三', '李四', 'rose', 'haha', 'nike']
>>>
2、在增加用户名的程序基础上,完成指定用户名称的修改操作。【修改】
lt = ["张三","李四","rose"]
while True:
a = input("请输入新的用户名:")
if a == '0':
break
else:
lt.append(a)
print("增加后的名单为:",lt)
b = int(input("请输入要修改的姓名下标:"))
lt[b] = input("请输入修改后的姓名:")
print("修改后的名单为:",lt)
运行结果:
请输入新的用户名:haha
请输入新的用户名:0
增加后的名单为: ['张三', '李四', 'rose', 'haha']
请输入要修改的姓名下标:0
请输入修改后的姓名:jack
修改后的名单为: ['jack', '李四', 'rose', 'haha']
>>>
3、在已经有数据的列表中查询用户输入的用户名,如果有则提示用户找到,如果没有则提示用户不存在【查询】
lt = ["张三","李四","rose","jack"]
i = input("请输入要查询的用户名:")
if i in lt:
print("已找到")
else:
print("不存在")
运行结果:
请输入要查询的用户名:jack
已找到
>>>
4、在以上的代码基础上输入一个要删除的用户名,首先判断是否在列表中,如果在就删除,如果不在就提醒不存在【删除】
lt = ["张三","李四","rose","jack"]
i = input("请输入要删除的用户名:")
if i in lt:
print("已找到")
lt.remove(i)
print("删除后的名单为:",lt)
else:
print("不存在")
运行结果:
请输入要删除的用户名:张三
已找到
删除后的名单为: ['李四', 'rose', 'jack']
>>>