列表
创建连续的list
L = range(1,5) #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]
L = range(4, 0 ,-1) #即L=4,3,2,1
list的方法
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
list 操作符:,+,*,关键字del
a[1:] #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4 #为[2,2,2,2]
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
python内置类型
len(list) #list的长度。实际该方法是调用了此对象的__len__(self)方法。
join():以字符作为分隔符,将字符串中所有的元素合并为一个新的字符串
new_str = '-'.join('Hello')
print(new_str)
H-e-l-l-o
三引号
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
print("The \t is a tab")
print('I\'m going to the movies')
print('''"""lsllls""""""''')
元组
#当元组中元素个数与变量个数不一致时
#定义一个元组,包含5个元素
t4 = (1,2,3,4,5)
#将t4[0],t4[1]分别赋值给a,b;其余的元素装包后赋值给c
a,b,*c = t4
print(a,b,c)
print(c)
print(*c)
字典
dictionary的方法
D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key) #有该键返回TRUE,否则FALSE
D.keys() #返回字典键的列表
D.values()
D.items()
D.update(dict2) #增加合并字典
D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常
D.clear() #清空字典,同del dict
D.copy() #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)
D.setdefault(character, 0) #设置默认值
字符串
string模块,还提供了很多方法,如
S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start [,end]]) #反向查找
S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
S.rindex(substring,[start [,end]])#同上反向查找
S.count(substring,[start [,end]]) #返回找到子串的个数
S.lowercase()
S.capitalize() #首字母大写
S.lower() #转小写
S.upper() #转大写
S.swapcase() #大小写互换
S.split(str, ' ') #将string转list,以空格切分
S.join(list, ' ') #将list转string,以空格连接
处理字符串的内置函数
len(str) #串长度
cmp("my friend", str) #字符串比较。第一个大,返回1
max('abcxyz') #寻找字符串中最大的字符
min('abcxyz') #寻找字符串中最小的字符
string的转换
oat(str) #变成浮点数,float("1e-1") 结果为0.1
int(str) #变成整型, int("12") 结果为12
int(str,base) #变成base进制整型数,int("11",2) 结果为2
long(str) #变成长整型,
long(str,base) #变成base进制长整型,
‘’’、、、、、、、’’'所看即所得
字符串方法 join()和 split()
', '.join([‘cats’, ‘rats’, ‘bats’])
‘My name is Simon’.split() 默认情况下,字符串’My name is Simon’按照各种空白字符分割,诸如空格、制表
符或换行符
用 rjust()、ljust()和 center()方法对齐文本
center()字符串方法与 ljust()与 rjust()类似,但它让文本居中,而不是左对齐或
右对齐。
>>> 'Hello'.rjust(10)
' Hello'
>>> 'Hello'.rjust(20, '*')
'***************Hello'
>>> 'Hello'.ljust(20, '-')
'Hello---------------'
>>> 'Hello'.center(20)
' Hello '
>>> 'Hello'.center(20, '=')
'=======Hello========'
Numpy
pandas
pandas的series和dataFrame
正则表达式
finditer跟findall差不多返回的是迭代器
seach返回的是match处对象.group()拿数据
match是从头开始
#第一种:
result = re.findall('a..',text)
#第二种:
obj = re.compile(r"\d+")
res = obj.finditer(text)
给所想去的价格名字,然后取出名字的内容👀(?p正则)放在括号的最前面
\d 0 到 9 的任何数字
\D 除 0 到 9 的数字以外的任何字
\w 任何字母、数字或下划线字符(可以认为是匹配“单词”字符)
\W 除字母、数字和下划线以外的任何字符
\s 空格、制表符或换行符(可以认为是匹配“空白”字符)
\S 除空格、制表符和换行符以外的任何字符
with open('poem.txt','r',encoding='utf-8') as fi:
text = fi.read()
# result = re.findall('a..',text)
# result = re.findall(' *([Aa][a-z]{2}) ',text)#加括号表示最后输出只要括号里面的就可以了
#{}表示有多少个
# result = re.findall(' ([Aa][a-z]{2}) |([Aa][a-z]{2}) ',text)
#会打印两个字符
result = re.findall('\w{3,5}',text)#匹配三到五个的字符
通配字符
.(句点)字符称为“通配符”。它匹配除了换行之外的所有字符。句点字符只匹配一个字符
贪心和非贪心匹配
- 向 re.compile()传入一个字符串值,表示正则表达式,它将返回一个 Regex 模式
对象(或者就简称为 Regex 对象)。 - 添加括号将在正则表达式中创建“分组”:(\d\d\d)-(\d\d\d-\d\d\d\d)
greedyHaRegex = re.compile(r'(Ha){3,5}')
nongreedyHaRegex = re.compile(r'(Ha){3,5}?')
#选择
batRegex = re.compile(r'Bat(wo)?man')
- 问号在正则表达式中可能有两种含义:声明非贪心匹配或表示可选的
分组。这两种含义是完全无关的。
用星号匹配零次或多次,用花括号匹配特定次
-
*(称为星号)意味着“匹配零次或多次”,即星号之前的分组,可以在文本中出现任意次。
batRegex = re.compile(r’Bat(wo)*man’)
mo1 = batRegex.search(‘The Adventures of Batman’)
mo1.group()res = re.search(r’Bat(wo)*man’,‘The Adventures of Batman’)
-
+(加号)则意味着“匹配一次或多次”
-
用花括号匹配特定次
findall()方法
- findall()方法将返回一组字符串,包含被查找字符串中的所有匹配。
# re. compile()
compile_re = re.compile(r'r[ua]n')
res = compile_re.findall('run ran ren')
print(res)
>>> ['run', 'ran']
正则表达式符号
- ?匹配零次或一次前面的分组。
- *匹配零次或多次前面的分组。
- +匹配一次或多次前面的分组。
- {n}匹配 n 次前面的分组。
- {n,}匹配 n 次或更多前面的分组。
- {,m}匹配零次到 m 次前面的分组。
- {n,m}匹配至少 n 次、至多 m 次前面的分组。
- {n,m}?或*?或+?对前面的分组进行非贪心匹配。
- ^spam 意味着字符串必须以 spam 开始。
- spam$意味着字符串必须以 spam 结束。
- .匹配所有字符,换行符除外。
- \d、\w 和\s 分别匹配数字、单词和空格。
- \D、\W 和\S 分别匹配出数字、单词和空格外的所有字符。
- [abc]匹配方括号内的任意字符(诸如 a、b 或 c)。
- [^abc]匹配不在方括号内的任意字符。、
.*?非贪婪
.*贪婪
“.*?” 匹配双引号里面的内容