字符串的访问
str = 'Picture'
print (str[1:3]) # 第二、三个字符
print (str[-3:-1]) # 倒数第二、三个字符
print (str[3:-1]) # 正数第四个到倒数第二个字符
print (str[-6:7]) # 倒数第六个到正数第七个字符
print (str[2:]) # 第三个字符开始的所有字符
print (str * 2) # 输出字符串两次
print (str + "TEST") # 连接字符串
字符串赋值
word = 'Python'
print(word[0], word[5])
print(word[-1], word[-6])
如果继续添加一行语句:word[0] = Q'
由于无法修改 word字符串,因此会导致错误:“TypeError: 'str' object does not support item assignment”。
如果需要修改字符串的内容,可以使用重新赋值语句,如:word = 'Qython'
即生成一个新的word变量。
列表的访问
list = [ 'a', 56 , 1.13, 'HelloWorld',[7,8,9] ]
print(list) #完整列表
print(list[4]) # 第五个元素
print(list[-2:5]) # 从倒数第二个到正数第五个元素
print(list[2:]) # 第三个元素开始的所有元素
列表元素的修改
a = [1, 2, 3, 4, 5, 6]
a[0] = 9 # 将第一个元素设为9
print(a)
a.append(7) # 在列表末尾追加7
print(a)
a[2:5] = [] # 将第三到五个元素值设置为空值
print(a)
a.pop(2) # 将第三个元素移除
print(a)
列表的遍历
lis= ['蚂蚱','螳螂','蝈蝈','蝗虫','蛐蛐']
#(1)直接遍历
for item in lis:
print(item)
#(2)按索引遍历
for i in enumerate(lis):
print(i)
#(3)对于列表类型,还有一种通过下标遍历的方式,如使用range()函数
for i in range(len(lis)):
print(lis[i])
元组的访问
tuple = ( 'SpiderMan',2017 ,33.4, 'Homecoming', 14 )
tinytuple = (16, 'Marvel')
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[3:4]) # 输出从第二个元素开始到第三个元素
print (tuple + tinytuple) # 连接元组
修改元组中的List类型数据项
tuple = ([16, 'Marvel'] , 'SpiderMan',2017 ,33.4, 'Homecoming', 14,)
print(tuple[0])
tuple[0][0]='Marvel'
tuple[0][1]='16'
print (tuple)
字典的访问
dict = {'Name': 'Mary', 'Age': 7, 'Class': 'First'};
print(dict);
print("Name: ", dict['Name'])
print("Age: ", dict['Age'])
列表可以作为字典的value值
dict = {'Name': ['Mary','Tom','Philp'], 'Age': [7,8,9], 'Class': ['1st','2nd','3rd']}
print(dict)
print("Name: ", dict['Name'])
dict['Age']=[8,9,10]
print("Age: ", dict['Age'])
修改字典
dict = {'Name': 'Zara', 'Class': 'First'};
#添加add
dict['Gender']="Female"
print(dict)
#修改update
dict.update({"No":"001"})
print(dict)
#也可以使用update方法添加/修改多个数据
dict.update({'Gender':"F","Id":1})
print(dict)
删除字典元素
del dict['Gender']
print(dict)
dict.clear()
print(dict)
创建集合
#创建一个空集合
var = set()
print(var,type(var)) #显示集合内容和类型
#具有数据的集合
var = {'LiLei','HanMeiMei','ZhangHua', 'LiLei', 'LiLei'}
print(var,type(var)) #显示集合内容和类型
集合成员检测
#判断元素在集合内
result = 'LiLei' in var
print(result)
#判断元素不在集合内
result = 'lilei' not in var #大小写敏感
print(result)
增加、删除集合元素
var = {'LiLei','HanMeiMei','ZhangHua'}
var.add('LiBai') #add方法添加元素
print(var)
var.update('DuFu') #update方法首先拆分元素,然后各个添加
print(var) #数据项无序,且去除重复项
var.remove('D')
var.remove('F')
var.remove('u')
print(var)
有一个集合anml,其内容为{'紫貂','松貂','青鼬','狼獾’},对anml集合进行遍历。
方法一:
anml ={'紫貂','松貂','青鼬','狼獾'}
for item in anml:
print(item)
方法二:
anml ={'紫貂','松貂','青鼬','狼獾'}
for item in enumerate(anml):
print(item)
集合的交集、并集(合集)、差集
#分别构造獾和貂两个集合
Huan={'猪獾','蜜獾','狼獾',}
Diao={'紫貂','松貂','美洲水鼬','狼獾'}
#交集
DiaoXiong=Huan&Diao
print('貂熊是:',DiaoXiong)
#并集
Youke=Huan|Diao
print('鼬科的是:',Youke)
#差集
DiaoT=Diao-Huan
print('除去獾的貂类:',DiaoT)
打开文件并写入数据
filename = 'INFO.txt'
f=open(filename,'w') #清空原文件数据,文件不存在则创建新文件
f.write("I am ZhangSanFeng.\n")
f.write("I am now studying in ECNU.\n")
f.close()
read()函数读取整个文件
with open("INFO.txt") as f: # 默认模式为‘r’,只读模式
ct10 = f.read(5) # 读5个字符
print(ct10)
print('======')
contents = f.read() # 从当前位置,读文件全部内容
print(contents)
使用readline()函数逐行读取
with open('data.txt') as f:
line1 = f.readline() # 读取第一行数据(此时已经指向第一行末尾)
line2 = f.readline() # 从上一次读取末尾开始读取(第二行)
print(line1)
print(line2)
print(line1.strip())
print(line2.strip())
print(line1.split())
使用readlines()一次读取多行
with open('data.txt') as f:
lines = f.readlines() #文件数据读到一个列表,每个元素对应一行
print(lines) #每一行数据都包含了换行符
print('================================')
for line in lines:
print(line.rstrip()) #使用rstrip()处理空格
使用for循环逐行读取文件
#逐行读取
with open('data.txt') as f:
for lineData in f:
print(lineData.rstrip()) # 去掉每行末尾的换行符
新建文本文件并写入内容
filename = 'write_data.txt'
with open(filename,'w') as f: # 'w'表示写数据,会清空原文件
f.write("I am ZhangSanFeng.\n")
f.write("I am now studying in ECNU.\n")
读取无标题数据并设置标题名
import pandas as pd
data1=pd.read_table('data.txt',sep=' ',header=None,names=["H","W","C"])
print(data1)
使用savetxt函数存数据
import numpy as np
x = y = z = np.arange(0,50,4.5)
#把X数组保留一位小数写入文件
np.savetxt('X.txt', x, delimiter=',',fmt='%5.1f')
#把X数组保留三位小数写入文件
np.savetxt('formatX.txt', x, fmt='%7.3f')
#把三个数组按原格式写入文件
np.savetxt('XYZ.txt', (x,y,z))