数据类型操作

索引

索引是一个用于定位数据集合中元素的标记,是一个整数。从0开始,到长度-1结束。(第一个元素索引为0,第二个元素索引为1...左后一个元素索引为长度-1)

字符串

索引取值

name = 'abcde'
# 取出第一个字符
print(name[0])
# 取出最后一个字符
print(name[4])
print(name[-1])

切片  

查找字符串中的一段值[起始值:终止值:步长]  (顾头不顾尾)

srt1 = 'hello world'
# 默认步长为一
print(str1[0:5])#取出索引为0到4的字符,索引为5的取不出来
print(str1[0:5:2])#走两步取一个取出索引为0 2 4的字符
# 倒着取
print(str1[::-1])

计算长度  len

print(len(str1))

 成员运算 (in,not in)

判断一个子字符串是否存在于一个大的字符串中,返回布尔类型 True False

print('dkl' in 'dklaaa')  # True
print('dh' not in 'dahaa' )  #False

 字符串拼接

# 这是两个字符串  他们在一行打印
print('dmli','dop')
# 字符串拼接
# 这是一个字符串
print('dmli'+'dop')

 占位符

format

# {}是一个占位符,给format()里的字符占位
print('my name is {}'.format('阿萨'))
print('my name is {},my age is {}'.format('阿萨',18))
# 占位符{}里可以放索引
print('my name is {1},my age is {0}'.format(18,'阿萨'))

f''/f""

i = 'as'  a = 18
print(f'my name is {i},my age is {a}')#也可以  f''与f'的用法一样

join

把一个列表里面的字符串拼接起来

str1 = '真正的勇士'
str2 = '敢于直面惨淡的人生'
str3 = '敢于正视淋漓的鲜血'
list1 = [str1,str2,str3]
print(list1)
print(''.join(list1))
print(','.join(list1))
print(','.join(str1))
'''
输出
['真正的勇士', '敢于直面惨淡的人生', '敢于正视淋漓的鲜血']
真正的勇士敢于直面惨淡的人生敢于正视淋漓的鲜血
真正的勇士,敢于直面惨淡的人生,敢于正视淋漓的鲜血
真,正,的,勇,士
'''

因为字符串是不可变类型,所以要重新赋值,改后的值是一个新值  

字符串字母全部变小写和大写 lower,upper

 msg1 = 'asDfG'
 print(msg1.upper())
 print(msg1.lower())
 a = msg1.lower()
 print(a)

 把第一个字母转换成大写 capitalize

 letter = 'asdf'
 print(letter.capitalize())
 letter1 = letter.capitalize()
 print(letter1)

把字符串切分成列表 从而进行取值 split 默认遇到空格切分

msgg1 = 'hello world python'
print(msgg1.split())
a = msgg1.split()
print(a)
#切分成列表后可以按照索引取值,取值更方便
print(msgg1.split()[1])
#可以按自己喜好进行切分,以下是遇到*切分,再按照索引取值,取出索引为2的
msg1 = 'hello*world*python'
print(msg1.split('*')[2])

替换

replace(存在的字符,新的字符,个数)默认替换全部

msg2 = 'dsafgazxa你好'
print(msg2.replace('你','我'))
msg3 = msg2.replace('你','我')
print(msg3)
print(msg2.replace('a','z'))
print(msg2.replace('a','z',1))

去掉字符串左右两边的字符,默认去掉字符串两侧的空格 strip

不管中间的字符

注意:strip()括号里的字符只能是两边的字符,如果不是就输出原值

a = '   a   s  '
print(a)
print(a.strip())
# 默认去掉两边的空格
a = 'as  xcv  mn op  '
# 去掉两边的a
print(a.strip('a'))
a = 'as  xcv  mn op  '
# 去掉两边的op
print(a.strip('op'))

多余添加自己想要的字符 center ljust rjust

#da放中间,*补充  一共11歌字符
print('da'.center(11,'*'))
#da放中间,*补充  一共12歌字符
print('da'.center(12,'*'))
#da放左边,一共10个字符,/补充
print('da'.ljust(10,'/'))
#da放右边,一共15个字符,+补充
print('da'.rjust(15,'+'))

查找子字符串在大字符串的位置(起始索引)

find方法不适用于列表

#find  没找到返回-1,不会报错
a = 'asdfg zxc cv'
print(a.find('zx'))
b = 'd'
print(a.find(b))
print(a.find('e'))
#index  没找到会报错
a = 'asdfg zxc cv'
print(a.index('zx'))
b = 'd'
print(a.index(b))
print(a.index('e'))

统计一个子字符串在大字符串中出现的次数 count

a = 'asdfg zxc cxxv'
print(a.count('x'))

判断一个字符串里的数据是不是都是数字 isdigit 返回布尔值

a = '154'
b = '145a'
print(a.isdigit())
print(b.isdigit())

判断每个字符是不是都是字母 isalpha 返回布尔值

a = 'aszx'
b = '14as'
print(a.isalpha())
print(b.isalpha())

如果字符串里全是数字 可以转换成整形 int 变成真正的数字

n = '111'
print(type(n))
print(type(int(n)))

比较开头元素是否相同startswith 比较结尾元素是否相同endswith 返回布尔值

z = 'asdzxc zvb'
print(z.startswith('as'))
print(z.startswith('zx'))
print(z.endswith('vb'))
print(z.endswith('as'))

判断字符串中的值是否全是小写 islower, 判断字符串中的值是否全是大写 isupper 返回布尔值

letter1 = 'aSX'
letter2 = 'zxc'
letter3 = 'ASD'
print(letter1.isupper())
print(letter1.islower())
print(letter2.islower())
print(letter2.isupper())
print(letter3.isupper())
print(letter3.islower())

字符串的转义,加了 \ 字符不再表示它本身的含义 常用的有 \n 竖向换行符 \t 横向换行符

print('hello\npython')
#横向换行符  相当于一个tab
print('hello\tpython')

 反转义

#第一种,转义字符前再加一个 \  ,每个转义字符前都要加
print('hello\\npython')
print('hello\\tpython')
#第二种,在整个字符串前加一个  r  只要在前面写一次
print(r'hello\npython hello\tpython')

布尔类型 

不仅仅是真假,还是 有True 无False

所有的数据类型都自带布尔值None,0,空(空字符串,空列表,空字典),三种情况下布尔值为False其余均为真(空格也是字符,不是空)

print(bool('as'))
print(bool(''))

 列表类型

append

在列表末尾添加元素

L = ['da',1,1.2,[1.22,'小']]
L.append('kl')
print(L)
extend(列表) 

在列表里添加多个元素 括号里放列表 末尾追加

L.extend(['蓝','紫'])
print(L)
 insert(索引,元素)

在指定索引前插入一个元素

L.insert(2,'蓝海')

 删除

L = [4,8,9,'sd','io','op'[8,9,'hj']]

del

删除整个列表

del L

索引删除指定元素

del L[1]

remove

从左边删除,一次删除一个

L.remove('io') 

pop

从列表中拿走一个值,按照索引拿走,默认拿走最后一个

res1 = L.pop()
print(L)
print(res1)#拿走的值归他

 按照索引拿走

res2 = L.pop(2)#拿走索引为二的给res2  不是元素2
print(L)
print(res2)
clear

清空列表 不删除列表

 
L.clear()
print(L) 

sort排序  对数字 

list_num = [1,6,2,5,9]
list_num.sort()
print(list_num)
#print(list_num.sort())不可行
#默认是正序相当于如下  默认参数是 reverse=False
list_num.sort(reverse=False)
print(list_num)
#倒叙
list_num.sort(reverse=True)
print(list_num)

 元组

(不可变类型,不能修改)如果想要修改元组,可以将元组转换成列表类型,再进行修改,再变回元组类型 .

t = (1,2,'kl',(2,3),['op',2,3])
t1 = list(t)
print(t1)
t1[3]=5
t=tuple(t1)
print(t)

与列表一样 索引,切片,长度 len,个数count查找元素索引index (find方法不适用),成员运算 in not in

字典

生成字典的方式

info = {'name':'大海','age':18}
dic = dict(x=1,y=2)
print(dic)
print(type(dic))

 

info['addr']='长沙'
print(info)
print(id(info))

长度len 字典的键值对对数

成员运算

in not in 判断的是key 返回布尔值

info = {'name':'海','age':18}
print('海' in info)
print('name' in info)

#清空字典clear
info = {'name':'阿萨','age':18}
info.clear()
print(info)
#del 按照key删   不存在的key会报错
del info['name']
#pop  拿走value  不存在的key会报错  返回值是value  pop()里不能是索引
info = {'name':'阿萨','age':18}
info2 = info.pop('name')
print(info)
print(info2)#value给他
#popitem z最后一对键值对删除,字典无序  返回的是一个元组
info = {'name':'阿萨','age':18}
res1=info.popitem()
print(info)
print(res1)#是一个元组(key,value)

改 

#直接改
info = {'name':'阿萨','age':18}
info['name']='撒'
info = {'name':'阿萨','age':18}
info.update({'name':'xiaohai'})
print(info)
'''setdefault 有则不动,返回原值  无则添加,返回新值
字典中已经存在key则不修改,返回已经存在的key对应的value'''
#字典不存在key则添加,返回新的value
res2=info.setdefault("sex","male")
print(info)
print(res2)

 查

#不存在的key会报错
info = {'name':'执行','age':18}
print(info['name'])
#没有key就返回None,不会报错
print(info.get('name'))

 

# 取出所有的key
print(list(info.keys()))
# 取出所有的value
print(list(info.values()))
# 取出所有键值对
print(list(info.items()))

 集合

集合里面的元素必须是不可变类型

s = {'a',1,'aa',('aaa','z',1)}
#增  add
s = {1,2,'a'}
s.add('d')
print(s)

 

#pop  从第一个元素删除
s = {1,2,3,'s'}
s1=s.pop()
print(s)
print(s1)#拿走的给他
#指定删除  remove
s.remove(2)#括号里是元素,不是索引

#改  update   说不定加到哪
s = {1,2,3,'s'}
s.update(['蓝海','zihai'])
print(s)

 

集合转换成列表再修改,再变换成集合

s = {1,2,3,'s'}
s1=list(s)
print(s1)
s1[0]='dd'
s=set(s1)
print(s1)

集合去重

有局限性

1.无法保证原数据类型的顺序

2.当某一个数据中包含的多个值全部为不可变类型时才能用集合去重

s1 = [1,2,3,'s',2,5,3,2,5,'s',8]
s=set(s1)
l=list(s)
print(l)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值