Python3 数据结构 (字符串,列表)

内置数据结构:
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']
>>>  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值