xxh_sun

导航

 
  1. 列表、元祖操作
  2. 字符串操作
  3. 字典操作
  4. 集合操作
  5. 文件操作

1.列表、元祖操作

列表是最常用的数据存储类型,通过列表可以实现数据的存储、修改操作。
定义列表:
list = ['kaies','sunny','jack']
通过下标访问列表中的元素,下标从0开始计数
1.list[0]
kaies
2.list[1]
sunny
3.list[2]
jack
 
使用说明:
list = ['kaies','sunny','jack','Tim',"rose"]
print(list[1:4]) #取下标1至下标4之间的数据,包括1,不包括4  结果:['sunny', 'jack', 'Tim']
print(list[1:-1]) #取下标1至下标-1之间的数据,不包括-1 注:-指的是从右开始计数 结果:['sunny', 'jack']
print(list[0:4]) # 结果:['kaies', 'sunny', 'jack', 'Tim']
print(list[:4]) #如果从头开始取数据 0可以省略 和上句效果一样 结果:['kaies', 'sunny', 'jack', 'Tim']
print(list[0:]) #如果想取到最后的数据 必须省略后面下标 结果: ['kaies','sunny','jack','Tim',"rose"]
print(list[0::2]) #后面的2代表每隔一个取一个数据 结果:['kaies', 'jack', 'rose']
追加数据
list.append("newItem")
print(list) #['kaies', 'sunny', 'jack', 'Tim', 'rose', 'newItem']

插入数据

list.insert(2,"insertItem")
print(list) #['kaies', 'sunny', 'insertItem', 'jack', 'Tim', 'rose']

 修改数据

list[2] = "changeItem"
print(list) #['kaies', 'sunny', 'changeItem', 'Tim', 'rose']

 删除数据

print(list.pop()) #删除列表最后一个值
print(list) #['kaies', 'sunny', 'jack', 'Tim']
list.remove('kaies')#删除指定元素 如果没有该元素则会报ValueError: list.remove(x): x not in list
print(list) #['sunny', 'jack', 'Tim', 'rose']
del list[0]
print(list) #['sunny', 'jack', 'Tim', 'rose']

 扩展

list1 = [1,2,3]
list.extend(list1)
print(list) #['kaies', 'sunny', 'jack', 'Tim', 'rose', 1, 2, 3]

 排序与翻转

list = ['kaies','sunny','jack','Tim',"rose"]
list.sort()
print(list) #['Tim', 'jack', 'kaies', 'rose', 'sunny'] 注:3.0版本以后 必须相同的数据元素才能进行排序
list.reverse()
print(list) #['sunny', 'rose', 'kaies', 'jack', 'Tim']

 统计数量

1 list = ['kaies','sunny','jack','Tim',"rose"]
2 print(len(list)) #获取数组的长度 输出结果:5
3 print(list.count('Tim')) # 获取数组中某以元素的多少 结果:1
4 print(list.count('Tim1')) # 获取数组中某以元素的多少 结果:0

获取下标

1 list = ['kaies','sunny','jack','Tim',"rose"]
2 print(list.index('kaies')) #获取元素的下标

copy

names = ['kaies1', 'sunny', 'jack', 'Tim', 'rose']
names_copy = names
names[0] = "kaies1"
print(names,names_copy) #['kaies1', 'sunny', 'jack', 'Tim', 'rose'] ['kaies1', 'sunny', 'jack', 'Tim', 'rose']
list_copy2 = names.copy()
list_copy2[0] = 'kaies2'
print(names,list_copy2) #['kaies1', 'sunny', 'jack', 'Tim', 'rose'] ['kaies2', 'sunny', 'jack', 'Tim', 'rose']

浅拷贝与深拷贝 http://blog.csdn.net/qq_32907349/article/details/52190796


2.字符串操作

特性:不可修改

name = 'Kixs Xu'
print(name.capitalize()) #首字母大写
print(name.casefold()) #大写全部变小写
print(name.center(20,'-')) #------Kixs Xu-------
print(name.count("x")) #统计x的个数
print(name.encode()) #转化为byte
print(name.endswith('Xu'))
print('Kixs\tXu'.expandtabs(10)) #\t转化为10个tab空格键
print(name.find('s'))#查找s,返回起索引 未找到返回-1

#format
msg = "my name is {},and age is {}"
print(msg.format("Kixs Xu",23))
msg = "my name is {1},and age is {0}"
print(msg.format("Kixs Xu",23))
msg =  "my name is {name},and age is {age}"
print(msg.format(name = 'Kixs Xu', age = 23))
print(msg.format_map({'name':'Kixs Xu','age':23}))
'''my name is Kixs Xu,and age is 23
my name is 23,and age is Kixs Xu
my name is Kixs Xu,and age is 23
my name is Kixs Xu,and age is 23'''

print(msg.index('i')) #返回i在字符串的首个索引位置
print('四大皆空撒~'.isalnum()) #文字数字的,包括文字与数字的;
print('四大皆空撒'.isalnum())
print('1'.isdigit()) #是否是整数
_str = "4.5"
_str.isnumeric
_str.isprintable
_str.isspace
_str.istitle
_str.isupper
print(','.join(['Kixs','jack','tim']))

intab = 'thanks'
outtab = '123456'
trantab = str.maketrans(intab,outtab)
print(trantab)
msg = "this is string example...wow!!!"
msg.translate(trantab)
print(msg.partition('is'))
msg = "this is string example...wow!!!"
print(msg.replace('is','IS',1))
print("ABC".swapcase()) #转为大写
print("cde".swapcase()) #转为大写
print("adc".zfill(10)) #0000000adc
msg = 'abc'
print(msg.ljust(20,'-'))
print(msg.rjust(20,'-'))
strip() #同时去掉左右两边的空格
lstrip() #去掉左边的空格
rstrip() #去掉右边的空格
#默认删除空白符(包括'\n', '\r', '\t', ' ')
msg.isidentifier()#判断变量命名是否规范

3.字典操作

字典是一种key-value的键值对的数据类型
定义:
info = {
    "00001":"北京",
    "00002":"上海",
    "00003":"重庆",
    "00004":"天津"}
  •  字典是无序的
  • 键值唯一,不可重复

添加:

info["00005"] = "河南"

 

修改:
info["00004"] = "杭州"

 删除:

info.pop("00001") #标准删除
info.popitem() #随机删除
del info["00001"] #删除

 

查找:
"00001" in info #标准查找 判断是否有该key
info.get("00001")#获取Item值
info["00001"]#同上
 循环查找:
#方法1(建议使用该方法 效率高)
for key in info : 
    print(key,info[key])
#方法2
for k,v in info.items():
    print(k,v)

4.集合操作

集合是一种无序、不重复的数据组合。集合的主要作用:

  • 列表去重
  • 关系测试,测试两组数据之前的交集、差集、并集等关系
s = set([3,5,9,10])      #创建一个数值集合  
  
t = set("Hello")         #创建一个唯一字符的集合  


a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
  
   
  
基本操作:  
  
t.add('x')            # 添加一项  
  
s.update([10,37,42])  # 在s中添加多项  
  
   
  
使用remove()可以删除一项:  
  
t.remove('H')  
  
  
len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制

5.文件操作

操作流程:
  1. 打开文件,得到文件句柄并保存该句柄
  2. 用该句柄对文件进行操作
  3. 关闭文件

打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab
f = open("file_save.txt","r",encoding="utf-8")
# for line in f.readlines():
#     print(line.strip('\n'))
for line in f :
    print(line.strip('\n'))
f.close()

 

with语句 为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open('log','r') as f:

 

2.7以后支持多个文件操作:
with open("test1.txt") as f1,\
        open("text.text2") as f2 :

 

6.字符编码

详细文章:

http://www.cnblogs.com/yuanchenqi/articles/5956943.html

http://www.diveintopython3.net/strings.html

需知:

1.在python2默认编码是ASCII, python3里默认是unicode

2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间

3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

 

dsaghds
posted on 2018-01-09 17:10  xxh_sun  阅读(117)  评论(0)    收藏  举报