Python学习五|集合、布尔、字符串的一些特点
#集合本身就像无值的字典
list1 = set([1,2,3,4])
list2 = {1,2,3,4}
print('list1 == list2?:',list1==list2)#list1 == list2?: True
print('list1 is list2?:',list1 is list2)#list1 is list2?: False
#集合是无序的
S = set('spam')
print(S)#输出的结果为{'m', 'p', 'a', 's'}
S.add('alot')
print(S)#{'alot', 'p', 'a', 's', 'm'}
#集合支持逻辑操作
S1 = {1,2,3,4}
print(S1 &{1,3})
print({1,5,3,6}|S1)
print(S1-{1,3,4})
print(S1>{1,3})#S1>{1,3,5}为false
#在Python中{}仍是一个字典,空的集合必须通过内置函数set来创建,并以同样的方式来创建
print(S1-{1,2,3,4})
print(type({}))
S2 = {}
S3 = set()
print(type(S2))#结果为dict
print(type(S3))#结果为set
print(type([1,2,3]))#结果为list
print(type((1,2,3)))#结果为tuple
#不可变限制与冻结集合
#S3.add([1,2,3])
#S3.add({'a':1,'b':2})
#列表和字典不能嵌入到集合中
S3.add((1,2,3))
print(S3)
S3 = frozenset()
#S3.add((1,2,3)),frozenset()为不可变集合
#集合的解析
S4 = {x**2 for x in [1,2,3,4]}
print(type(S4))
S4 = {x for x in 'sapm'}
print(S4)
S4 = {c*4 for c in 'spam'}
print(S4)
S4 = {c*4 for c in 'spamham'}#set集合石无序的,不可重复的
print(S4)
L = [1,2,1,3,2,4,5]
print(L)
L = list(set(L))#清除重复项
print(L)
print(type(True))#class问bool
print('True == 1?:',True == 1)#True == 1?: True 相同的值
print('True is 1?:',True is 1)#True is 1?: False但是是不同的类型
print(True or False)#True 等于1 or 0
print(True+4)#结果为5,em。。。。说好的强类型语言呢
字符串的抑制转义
当我们需要打开一个文件:myfile = open('C:\new\text.txt','w')中的’\n‘与'\t'会被转义,这就不是我们想要的结果了,所以我们需要抑制转义,有两种方法可以做到:
1、在字符串前增加’r‘,即myfile = open(r'C:\new\text.txt','w')。但一个raw字符串不能以单个的反斜杠结尾,因为反斜杠会转义后续引用的字符,仍然必须转义外围引号字符以将其嵌入到该字符串中。也就是说:r'...\'不是一个有效的字符串常量,一个raw字符串不能以奇数个反斜杠结束。
2、多加一个'\',即myfile = open('C:\\new\\text.txt','w')
实际上,当打印一个嵌入了反斜杠字符串时,python自身也会使用这种写两个反斜杠的方法
扩展分片:第3个限制值
分片表达式增加了一个可选的第三个索引,用作步进。完整形式的分片现在变成了X[I:J:K]。
eg:S = "HELLO"
S[::-1]可实现字符S的反转
str和repr的区别:简单来说,函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式
本文来自博客园,作者:sum墨,转载请注明原文链接:https://www.cnblogs.com/wlovet/p/7985852.html