python字符串类型转列表_python基础二 ---类型转换 ,字符串,列表,元祖,for,range,enumerate...

一 数据类型一览

int : 数字 1,2,3 等 ,用于计算

bool : True,False. 用于判断

string : 存储少量数据,用于操作

list : 存储大量数据,任何数据都可存储

[ 1,2,"sdffds",[1,2,3],'dfdfdf']

元祖:存储大量数据,任何数据都可存储,但是只读。

dict(字典): 存储大量关系型数据,查询速度很快。

第一种:{‘name’ : 'john' , 'age' : '22' , 'height' : '180'}

第二种 : { 'john' : [22,180,....... ] , 'oliver' : [.........] }

集合 : 与list类似,主要用于 求交集 和 求并集 。

二 基础数据类型及类型转换

1 int

bit_length() 当十进制用二进制表示时,最少使用的位数

'''bit_length

1 0000 0001 1

2 0000 0010 2

3 0000 0011 2'''

2 bool

只有true 和 false 代表真假。

真 = 数字 = true、假 = 0 = false

3 类型转换

第一种:数字(int)与 字符串(str)

int-->str     str(int)

str-->int     int(str)  注意:只有字符串内容是数字时,才可转换。

第二种:数字(int)与 布尔值(bool)

int-->bool   bool(int) 非零数 = true   0 = false

bool-->int   int(bool)     true = 1           false = 0

#ps: 进行死循环时,选择效率高的

whileTrue:pass

while 1: 效率高pass

第三种:布尔值(bool)与 字符串(str)

str-->bool    s = " " 空字符串为false    s = "0",s = "非空字符串"为true

bool-->str

第四种:字符串(str)与 列表(list)

str-->list       li =s.split()

list-->str       s =  "   ".join(li)

join

#'连接符,默认为拼接' . join(可迭代对象)#返回字符串#除了int,bool,含有多个元素的字符串,列表等可迭代

li = ['taibai','alex','wusir','egon','女神',]

s= '++++'.join(li)print(s)#taibai++++alex++++wusir++++egon++++女神

第五种: list --set

#去重

li = [1,2,33,33,2,1,4,5,6,6]

set1=set(li)print(set1) #{1, 2, 33, 4, 5, 6} 将列表变集合去重

li =list(set1)print(li) #[1, 2, 33, 4, 5, 6] 再将去重的集合变列表

4 str

字符串的索引和切片

索引:通过下标选取字符串中的元素,下标从零开始。(从左到右)

切片:通过索引截取字符串中的元素,形成新的字符串。(原则:顾头不顾尾)

a = "ABCDEFG"

#1 取单个元素

print(a[3]) #-->D

#2 取一段 ,[首:尾:步长]

print(a[0:3]) #-->ABC 顾头不顾尾

print(a[0:]) #默认到最后 或者print(a[:])

print(a[0:-1]) #-1就是最后一个 -->ABCDEF

print(a[-1::-1])#--> GFEDCBA

#3 隔几个取

print(a[0:5:2]) #加步长-->ACE

print(a[5:0:-2]) #反向加步长-->FDB

字符串的操作

s = "AKKscDxx"

#1 首字母大写

print(s.capitalize())

#2 全大写,全小写 用于验证不区分大小写的密码、验证码

print(s.upper())

print(s.lower())

#3 大小写翻转

print(s.swapcase())

#4 每个(空格,数字,特殊字符隔开的)单词的首字母大写

s= 'big small7middle&hi '

print( s.title())#-->Big Small7Middle&Hi

#5 内同居中,总长度,空白处填充(空格或其他字符)

s="a"

print(s.center(10,"*")) #-->****aa****

#6 \t 前面的补全

“““默认将一个tab键变成8个空格,如果tab前面的字符长度不足8

个,则补全8个,如果tab键前面的字符长度超过8个不足16个则

全16个,以此类推每次补全8个。”””

s = "hqw\tdfehdgyb"

print( s.expandtabs())#-->hqw dfehdgyb

#7 startswith 判断是否以...开头 # endswith 判断是否以...结尾

s = "dkfjdkfasf54"

print(s.endswith('jdk',3,6)) #-->true

# 返回的是布尔值 顾头不顾腚

print(s.startswith("kfj",1,4))#-->true

print(s.startswith(“dk"))#-->true

#8 通用方法

l = len(s) #求字符串s的长度,返回值为 int

#9 查找字符串中的元素

# find 通过元素找索引,找不到返回-1(int)

# index通过元素找索引,找不到报错

# 找到返回下标数字(int)

s = 'alexWUsir'

s8 = s.find('A')

s81 = s.index('A')

print(s81,type(s81))

s= "dkfjdkfasf54"

print(s.find("fjdk",1,6)) # -->返回 2

#10 去空格(特殊符号等) 默认删除前后空格,用于用户输入

s = "*egon**"

print(s.strip('*'))#-->egon

print(s.lstrip('*'))#-->egon**

print(s.rstrip('*'))#-->*egon

#s.strip(“%$#”) 分别删除%¥#

#11 统计字符串中某个元素出现的次数 列表、元祖等通用

s = "adfad"

print(s.count("a",0,4) ) # 可切片

#12 拆分 默认以空格拆 可将字符串拆成列表,得到的列表不含 分割元素

# 注意原则:一分为二

s = ';alex;wusir;taibai'

l = s.split('a')print(l)#-->[';', 'lex;wusir;t', 'ib', 'i']

#13 格式化输出fomat(更高级)

#format的三种格式化输出

# s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')

# print(s) 对应

# name = input('请输入名字:')

# s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')

# print(s) 索引

# name = input('请输入名字:')

# s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')

# print(s) 变量

#14 replace (旧的,新的,个数)

s = '哈哈顶顶顶顶哈哈'

s = s.replace('哈哈','呵呵',1)

print(s)-->#呵呵顶顶顶顶哈哈 只替代一个

#15 is系列 返回 true false

name='jinxin123'

print(name.isalnum()) #字符串由字母或数字组成

print(name.isalpha()) #字符串只由字母组成

print(name.isdigit()) #字符串只由数字组成

5 列表list

列表的索引和切片与字符串相同,且得到的是列表。

列表的操作(增删改查)与字符串操作不一样,对列表进行操作将改变原列表,对字符串操作创建新字符串,原字符串不变。

通常对列表的操作与对列表中字符串的操作结合进行。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

li = ['alex','wusir','egon','女神','taibai']#增加 append

li.append("nihao")print(li)#-> ['alex', 'wusir', 'egon', '女神', 'taibai', 'nihao']

#索引插入insert(索引,对象)

li.insert(2,123)#['alex', 'wusir', 123, 'egon', '女神', 'taibai']

#迭代插入extend(可迭代对象)分解到元素再加入

li.extend(123) #报错 数字不可迭代

li.extend([1,2,"asd"])#['alex', 'wusir', 'egon', '女神', 'taibai', 1, 2, 'asd']

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

li = ['taibai','alex','wusir','egon','女神',]#按索引删 pop()

#pop() 默认删最后一个,且可返回删除的值

print(li.pop(2),li)#wusir ['taibai', 'alex', 'egon', '女神']

#按元素删 remove()

li.remove('taibai')print(li)#-->['alex', 'wusir', 'egon', '女神']

#清空 clear()

li.clear()print(li) #-->[]

#在内存中删除列表 del li#切片去删 del li[x:y]

del li #报错 li 不存在

del li[0:2] #['wusir', 'egon', '女神']

print(li)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#直接赋值改变

li[0] = "男神"#-->['男神', 'alex', 'wusir', 'egon', '女神']

#先切片删除,再添加(添加不需要等于删除)

li[0:3] = '云姐pl'#-->['云', '姐', 'p', 'l', 'egon', '女神']

li[0:3] = [1,2,3,'春哥','咸鱼哥']#-->[1, 2, 3, '春哥', '咸鱼哥', 'egon', '女神']

print(li)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#循环查

for i inli:print(i)#切片查某一段

print(li[0:2])

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 li = ['taibai','武藤兰','苑昊',['alex','egon',89],23]2 #print(li[1][1])

3 #li[0] = li[0].capitalize()

4

5 #li[2] = '苑日天'

6 #print(li[2].replace('昊','ritian'))

7 #li[2] = li[2].replace('昊','ritian')

8

9 #li[3][0] = li[3][0].upper()

10 #print(li)

列表的嵌套

6 通用方法

len()

#求长度

s = "adfad"

print(len(s)) #--> 5 (个字符)

a= ["q", "wss", "qssss", "sssr", "t", "y"]print(len(a)) #--> 6 (个元素)

count ()

#统计某个元素出现的次数

s = "adfad"

print(s.count("a",0,4) ) #可切片

a= ["q","w","q","r","t","y"]print(a.count("q"))

index()

#找出某个值第一个匹配项的索引位置

a = ["q","w","r","t","y"]print (a.index("r"))

s= 'alexWUsir'

print(s.index('al'))

reverse()字符串不能用

#反转元素

li = ['taibai','alex','wusir','egon','女神',]

li.reverse()print(li)#--> ['女神', 'egon', 'wusir', 'alex', 'taibai']

sort()字符串不能用

li = ['taibai','alex','wusir','egon','女神',]#正向排序 再原列表的基础上

li.sort()print(li)#-->['alex', 'egon', 'taibai', 'wusir', '女神']#反向排序

li.sort(reverse=True)print(li)#-->['alex', 'egon', 'taibai', 'wusir', '女神']

7 元祖

#元祖 只读列表,可循环查询,可切片。

#儿子不能改,孙子可以改

tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

tu[4][3]=tu[4][3].upper()print(tu)#-->(1, 2, 3, 'alex', [2, 3, 4, 'TAIBAI'], 'egon')

#元祖 如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。

tu1 = (1)

tu2= (1,)print(tu1,type(tu1)) #1

print(tu2,type(tu2)) #(1,)

8 range

#列表,盛放数字 (首,尾,步长)#for i in range(3,10): #顾头不顾尾 3.4...9#for i in range(10): #0.1.2...9#for i in range(0,10,3):#0 3 6 9#for i in range(10,0,-2):#10 8 6 4 2#for i in range(10,-1,-2):#10 8 6 4 2 10 8 ...2

9 for

for i in s:        if   i in  s:

#输出元素

li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds']for i inli:if type(i) ==list:for k ini:print(k)else:print(i)for i inrange(len(li)):if type(li[i]) ==list:for j inli[i]:print(j)else:print(li[i]

10 enumerate

li = ['alex','taibai','wusir','egon']for i inli:print(li.index(i),i)

0 alex1taibai2wusir3egon#li需可迭代,index为索引,可加

for index,i in enumerate(li,100):print(index,i)100alex101taibai102wusir103 egon

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值