Python_04_元组_字典_字符串操作

元组:Tuple = (1, 2, 3, 4, 5, 6)
元组被称为只读列表,即数据可以被查询,但不能被修改。
所以,列表的切片操作同样适用于元祖

Tuple = (1, )

元组只有一个元素时,需要在这个元素后面加逗号

列表嵌套:list = [[xxx], [xxx,xx,xx], xx]

for i in xxx:xxx表示一个可迭代序列或迭代器

enumerate(list, 1):给列表加序号,生成一个加了序号的列表迭代器

不可变类型:整型、字符串、元组
可变类型:列表、字典

字典:
字典是Python中唯一的映射类型,采用键值对(key-value)
的形式存储数据。
Python对key进行哈希函数云计算,根据计算的结果决定value的存储地址,
所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型
如:数字、字符串、元祖。
字典是除列表以外Python之中最灵活的内置数据结构类型。
列表是有序的对象集合,字典是无序的对象集合,两者之间的区别在于:
字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典必定是无序的,且键是唯一的(当有相同键时,后面的键会覆盖前面的键)
>>创建字典:

dict1 = {"name":"TyQuan","age":36, "gender":"male"}
dict2 = dict((("name", "TyQuan"), ))(不常用)
print(dict1)
print(dict2)


>>字典取值:

dict1["name"]
通过key取出对应的值

 

字典操作:
1.增加:

>>dict1["height"] = 178

往字典dict1中增加一个名为height的键,对应的值为178

>>dict1.setdefault("weight",60)

setdefault()方法直接给定一组键值对,返回值为设置的键的值
如果给定的键本身就存在于字典中,那么返回值就是该键之前的值,并且本次键值设定不生效
如果给定的键本身不存在于字典中,那么返回值就是该键当前设置的值,本次键值设定生效

2.查询:

>>dict1["name"]

通过key直接取出对应的值

>>dict1.get("name")

通过key查询并得到对应的值

>>dict1.keys()

获取字典所有的key,返回的是一个dict_keys类型,可以通过list()转换为列表

>>dict1.values()

获取字典所有的value,返回的是一个dict_values类型,可以通过list()转换为列表

>>dict1.items()

获取字典中每一组键值对,返回一个dict_items类型,可以通过list()转换为列表

3.修改:

>>dict1["name"]="TyQuan"

直接取key修改对应的value

>>dict2={"name":"TyQuan", "age":25}
>>dict1.update(dict2)

将dict2的键值对覆盖到dict1中,相同key直接被覆盖,不相同的就放入dict1字典中

4.删除:

>>del dict1["name"]

通过del删除列表中key对应的键值对

>>dict1.clear()

清空当前字典所有内容,dict1为空字典

>>dict1.pop("name")

删除字典中key为"name"对应的键值对,返回值为删除的key对应的value

>>dict1.popitem() (没什么用)

随机删除字典中的某组键值对,并返回该键值对元组

>>del dict1

删除该整个字典

5.其他操作以及涉及到的方法:

>>dict2 = dict.fromkeys(["host1", "host2", "host3"], "test")
In [0]: dict2
Out[0]: {'host1': 'test', 'host2': 'test', 'host3': 'test'}

通过dict.fromkeys()方法创建一个所有key的value默认值都一致的字典
该方法有一个情况,如果默认value是一个列表时存在浅拷贝情况,修改某个key的value,全部key对应的value都会被修改

>>sorted(dict)
# 默认返回排序好的key列表
>>sorted(dict.keys())
>>sorted(dict.values())
# 返回排序好的values列表
>>sorted(dict.items())
# 返回排序好的键值对元组为元素的列表(根据key排序)

返回一个有序的包含字典所有key的列表

字典的遍历:

dic5={'name': 'alex', 'age': 18}

for i in dic5:# 推荐使用,效率优于第三种
    print(i,dic5[i])# 此处的i得到的是key

for item in dic5.items():
    print(item)
for keys,values in dic5.items():
    print(keys,values)

字符串操作:

# 1 * 重复输出字符串

print('hello'*2)

# 2 [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表

print('helloworld'[2:])

# 3 in 成员运算符 - 如果字符串中包含给定的字符返回 True

print('el' in 'hello')

# 4 % 格式字符串

print('alex is a good teacher')
print('%s is a good teacher'%'alex')

# 5 + 字符串拼接

a='123'
b='abc'
c='789'
d1=a+b+c
print(d1)

# +效率低,该用join

d2=''.join([a,b,c])
print(d2)

string的内置方法:

 

string.capitalize()
# 把字符串的第一个字符大写
string.center(width)
# 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
string.count(str, beg=0, end=len(string))
# 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
string.decode(encoding='UTF-8', errors='strict')
# 以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
string.encode(encoding='UTF-8', errors='strict')
# 以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
string.endswith(obj, beg=0, end=len(string))
# 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
string.expandtabs(tabsize=8)
# 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
string.find(str, beg=0, end=len(string))
# 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.index(str, beg=0, end=len(string))
# 跟find()方法一样,只不过如果str不在 string中会报一个异常.
string.isalnum()
# 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
string.isalpha()
# 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
string.isdecimal()
# 如果 string 只包含十进制数字则返回 True 否则返回 False.
string.isdigit()
# 如果 string 只包含数字则返回 True 否则返回 False.
string.islower() 
# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string.isnumeric()
# 如果 string 中只包含数字字符,则返回 True,否则返回 False
string.isspace()
# 如果 string 中只包含空格,则返回 True,否则返回 False.
string.istitle() 
# 如果 string 是标题化的(见 title())则返回 True,否则返回 False
string.isupper()
# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
string.join(seq)
# 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
string.ljust(width)
# 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.lower()
# 转换 string 中所有大写字符为小写.
string.lstrip()
# 截掉 string 左边的空格
string.maketrans(intab, outtab]) maketrans()
# 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
max(str)
# 返回字符串 str 中最大的字母。
min(str)
# 返回字符串 str 中最小的字母。
string.partition(str)
# 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把字符串 string 分成一个3元素的元组(string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
string.replace(str1, str2, num=string.count(str1))
# 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
string.rfind(str, beg=0,end=len(string) )
# 类似于 find()函数,不过是从右边开始查找.
string.rindex( str, beg=0,end=len(string))
# 类似于 index(),不过是从右边开始.
string.rjust(width)
# 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rpartition(str)
# 类似于 partition()函数,不过是从右边开始查找.
string.rstrip()
# 删除 string 字符串末尾的空格.
string.split(str="", num=string.count(str))
# 以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
string.splitlines(num=string.count('\n'))
# 按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
string.startswith(obj, beg=0,end=len(string))
# 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.strip([obj])
# 在 string 上执行 lstrip()和 rstrip()
string.swapcase()
# 翻转 string 中的大小写
string.title()
# 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
string.translate(str, del="")
# 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
string.upper()
# 转换 string 中的小写字母为大写
View Code

 

转载于:https://www.cnblogs.com/LoveOpenSource/p/7471522.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值