python--列表、字典、字符串

一、列表(增、删、改、查)

1.列表的增加

append() 在列表中追加某元素
insert() 在列表中插入某元素
extend() 在列表中追加某元素(具体区别看下面示例)
a=['夏','商','周','秦','汉','隋','唐','宋','元','明','清']
a.append('民国')  #默认插到最后一个位置
print(a)  # ['夏', '商', '周', '秦', '汉', '隋', '唐', '宋', '元', '明', '清', '民国']
a.insert(3,'春秋') #将数据插入到任意一个位置
print(a)  # ['夏', '商', '周', '春秋', '秦', '汉', '隋', '唐', '宋', '元', '明', '清', '民国']

c = [1, 2, 3]
d = [4, 5, 6]
e = [7, 8, 9]
c.extend(d)
print(c)  # [1, 2, 3, 4, 5, 6]
c.append(e)
print(c)  # [1, 2, 3, 4, 5, 6, [7, 8, 9]]
# extend和append区别
# 使用extend的时候,是将d看作一个序列,将这个序列和c序列合并,并放在其后面
# 使用append的时候,是将e看作一个对象,整体打包添加到c对象中。

2.列表的删除

函数 功能
remove() 删除列表中指定元素
pop() 删除列表中指定元素,不写参数默认删除最后一个
del 删除后面跟的东西,具体看下面示例
a=['夏','商','周','秦','汉','隋','唐','宋','元','明','清']

a.remove(a[0])  #删除列表中第0个元素
print(a)  # ['商', '周', '秦', '汉', '隋', '唐', '宋', '元', '明', '清']

b=a.pop(1)  #把列表中第一个元素放入变量b中,如果pop中不填数字,默认最后一个
print(a)  # ['商', '秦', '汉', '隋', '唐', '宋', '元', '明', '清']
print(b)  # 周

del a[0]  #删除第o个元素
print(a)  # ['秦', '汉', '隋', '唐', '宋', '元', '明', '清']
del a  #删除整个列表,连变量一起删除
print(a)  # 因为删除了整张表,所以报错

3.列表的修改

a=['夏','商','周','秦','汉','隋','唐','宋','元','明','清']
a[1]='封神榜'  #修改第一个位置的数据
print(a)  # ['夏', '封神榜', '周', '秦', '汉', '隋', '唐', '宋', '元', '明', '清']
a[1:3]=['武王灭纣','烽火戏诸侯']  #修改第一个到第二个的内容(左包右不包)
print(a)  # ['夏', '武王灭纣', '烽火戏诸侯', '秦', '汉', '隋', '唐', '宋', '元', '明', '清']

4.列表的查询

a=['夏','商','周','秦','汉','隋','唐','宋','元','明','清']
print(a[1:])  #从第1个取到最后
print(a[-1])  #取最后一个值
print(a[1:-1])  #开始,结束(左包右不包)
print(a[1:-1:2])  #开始,结束,步长
print(a[1::3])  #开始,步长(一直从开始位置,按照步长取到最后一个)
print(a[2::-1])  #开始,步长(取到最尽头)
print(a[-2::-1])  #开始,步长(从倒数第二个开始,从后往前一个一个取)

first = a.index('周')  #index根据内容查找位置,有多个重复内容时,只会取第一个
print(first)  # 2

list = a[first+1:]  #搜索在list中,'汉'的位置
second = list.index('汉')
print(second)  # 1

list1 = first + second + 3  #根据位置找内容
print(a[list1])  # 唐

5.列表操作的常用函数

函数 功能 用法
count() 计算在列表元素出现的次数 a.count("某元素")
reverse() 反向列表内容 a.reverse()
sort()

给列表排序,里面可以添加一个参数reverse

当reverse=True时,为降序排列

当reverse=False时,为升序排列,默认False

a.sort(reverse=True)

sorted() 功能和sort一样,但是调用方式不同 sorted(a)

6.列表的亲戚——集合

        列表中允许有重复的元素,但是集合中是不允许的,可以通过 set(list) 的方式将列表转换成集合,但是转换后,里面的重复元素会被直接干掉,集合的表示方式为:{},具体示例如下:

a = [1,1,1,1,1]
b = set(a)
print(b)   # 输出:{1}

统计列表中不同元素的重复次数

from collections import Counter
aa=[1,2,2,3,2,4]
b = Counter(aa)
print(b)    # Counter({2: 3, 1: 1, 3: 1, 4: 1})

 

二、字典

字典两大特点:无序,键唯一

1.字典的创建方式

#1.普通创建
a = {'name':'hello','age':18}
print(a)  # {'name': 'hello', 'age': 18}

#2.动态分配键值
b = {}
b['name']=222
b['age']=19
print(b)  # {'name': 222, 'age': 19}

#3.字典键值表
c=dict(name='hello',age=18,salary=3000)
print(c)  # {'name': 'hello', 'age': 18, 'salary': 3000}

#4.字典键值元组表
d=dict([('name','333'),('age','456'),('salary','4000')])
print(d)  # {'name': '333', 'age': '456', 'salary': '4000'}

#5.给所有键都赋予相同的初始值
e=dict.fromkeys(['name','age','salary'],'none')
print(e)  # {'name': 'none', 'age': 'none', 'salary': 'none'}

2.字典操作

#1.键不存在,在字典中中增加新的键值对
dict2={'name':'abc'}
dict2.setdefault('hobby','basketball')
print(dict2)  # {'name': 'abc', 'hobby': 'basketball'}

#2.查找
dict3={'name':'aaa','age':18,'hobby':'basketball','salary':'5000'}
print(dict3['name'])  # aaa
print(dict3.values())  # dict_values(['aaa', 18, 'basketball', '5000'])
print(list(dict3.keys()))  # ['name', 'age', 'hobby', 'salary']
print(list(dict3.items()))  # [('name', 'aaa'), ('age', 18), ('hobby', 'basketball'), ('salary', '5000')]

#3.修改
dict4={'name':'aaa','age':18,'hobby':'basketball','salary':'5000'}
dict4['name']='hello'
print(dict4)  # {'name': 'hello', 'age': 18, 'hobby': 'basketball', 'salary': '5000'}

#4.update
dict5={'name':'hello','age':28,'hobby':'none'}
dict6={'name':'aaa','age':18,'hobby':'basketball','salary':'5000'}
dict6.update(dict5)  #把第五个表的数据更新到第6个表
print(dict5)  # {'name': 'hello', 'age': 28, 'hobby': 'none'}
print(dict6)  # {'name': 'hello', 'age': 28, 'hobby': 'none', 'salary': '5000'}

#5.清空字典
dict7={'name':'hello','age':28,'hobby':'none'}
dict7.clear()
print(dict7)  # {}

#6.删除
dict8={'name':'hello','age':28,'hobby':'none'}
del dict8['name']  #删除字典中指定键值对
print(dict8)  # {'age': 28, 'hobby': 'none'}

ret = dict8.pop('age')  #删除字典中指定键值对,并返回该键值对的值
print(ret)  # 28

dict9={'name':'hello','age':28,'hobby':'none'}
a = dict9.popitem() #随机删除某组键值对,并以元组方式返回值
print(a)  # ('hobby', 'none')
print(dict9)  # {'name': 'hello', 'age': 28}

del dict9  #删除整个字典
print(dict9)  # 因为字典被删除,所以报错

三、字符串

1.String操作

# 1.重复输出字符串
print('hello'*20)  # hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello

# 2.通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表
print('hello world!'[2:])  # llo world!

# 3.关键字 in
print(123 in [23,45,123])  # True
print('123' in 'hello world!')  # False

# 4.字符串拼接
a='123'
b='abc'
d='456'
c=a+b
print(c)  # 123abc
c= ''.join([a,b,d])
print(c)  # 123abc456

2.String的一些内置方法

st='hello world hello world \thello world azata bb cc d ee gg ##{name}  {age}'
print(st.count('l'))       #  统计元素个数
print(st.capitalize())     #  首字母大写
print(st.center(100,'$'))   #  居中
print(st.endswith('aaa')) #  判断是否以某个内容结尾
print(st.startswith('he')) #  判断是否以某个内容开头
print(st.expandtabs(tabsize=20)) #返回一个字符串的副本。使原字符串中的制表符("\t")的使用空间变大。使用空格来扩展空间。
                                 #语法: str.expandtabs(tabsize=8)  —> str  返回字符串
                                 #tabsize 的默认值为8。tabsize值为0到7等效于tabsize=8。tabsize每增加1,原字符串中“\t”的空间会多加一个空格。
print(st.find('l'))        #  查找到第一个元素,并将索引值返回
print(st.format(name='123',age=456))  # 格式化输出的另一种方式   待定:?:{}
print(st.format_map({'name':'444','age':18}))
print(st.index('l'))
print('qgegaqrg'.isalnum())         #检测字符串是否由字母和数字组成
print('136546488'.isdecimal())     #字符串中的所有字符均为十进制字符
print('1847654699gagar'.isnumeric())     #检测字符串是否只由数字组成
print('abc'.isidentifier())           #检查字符串是否是有效标识符
print('Abc'.islower())                #检测字符串是否为小写
print('ABC'.isupper())                #检测字符串是否为大写
print('a d e'.isspace())              #检测字符串中的所有字符均为空格字符
print('Evsdfghsh'.istitle())          #检查一个字符串中的每个单词开头字母是否为大写,而其它字符都为小写形式
print('GESGKHBUKH'.lower())           #将字符串全部转化为小写
print('gqrEDFSadsf'.upper())          #将字符串全部转化为大写
print('aaaa'.swapcase())              #将字符串全部转化为大写
print('aaaaa'.ljust(50,'*'))          #字符串在前,用*号填充够50个(总共)
print('aaa bbb'.rjust(50,'*'))        #字符串在后,用*号填充够50个(总共)
print('\tMy tLtle\n'.strip())         #移除字符串头尾指定的字符(默认为空格)或字符序列
print('\aaa bbb\n'.lstrip())
print('\aaa bbb\n'.rstrip())
print('aaa bbb ccc'.replace('bbb','lesson',1))    #把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
print('aaa bbb bbb'.rfind('c'))
print('aaa bbb ccc'.split('b',5))       #通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
print('aaa bbb ccc'.title())            #开头大写

3.String的常用函数

函数 功能
isalnum 判断字符串是否完全由字母或数字组成
isalpha 判断字符串是否完全由字母组成
isdigit 判断字符串是否完全由数字组成
isupper 判断字符串中的字母是否完全大写
islower 判断字符串中的字母是否完全小写
istitle 判断字符串是否满足title格式
isspace 判断字符串是否完全由空格组成
startswith 判断字符串的开头字符,也可以先截取再判断
endswith 判断字符串的结尾字符,也可以先截取再判断
split 字符串分割
replace 将字符串中的内容进行替换

你可能感兴趣的:(python基础,python,开发语言)