看了《Head First Python》后,觉得写的很不错,适合新手。此处为读书笔记,方便日后查看。
Python 提供了4中数据结构:list,dict,set,tuple. 每种结构都有自己的特征和用处。
1. List -- 有序的可变对象集合
- List 的定义
prices = [] # 定义空列表 temps = [32.0, 212.0, 0.0, 81.6, 100.0, 45.3] # 存储浮点型 words = ['hello','word'] # 存储字符串 car_details = ['Toyota', 'RAV2', 2.2, 60808] # 列表中可以存储混合类型数据 everyting = [prices, temps, words, car_details] # 列表里放置列表
- List 常用操作,以下操作直接影响list的值。
fruit=['banana','orange','strawberry'] # 打印列表中全部元素 for v in fruit: print(v) # 判断列表中是否存在某个元素,若不存在加入到列表中。 if 'apple' not in fruit: fruit.append('apple') print(fruit) # 打印列表长度 print(len(fruit)) # 从列表总添加元素 fruit.append('piers') print(fruit) # 从列表中删除某个对象值 numsRem=[1,2,3,4] numsRem.remove(3) print('Remove result is '+str(numsRem)) # nums -> [1,2,4] # 从列表中删除某个位置(索引值)的对象 numsPop=[1,2,3,4] numsPop.pop() #->4 print('Pop result is '+str(numsPop)) #nums->[1,2,3] # 加入一个其他列表 nums1=[1,2] nums2=[3,4] nums1.extend(nums2) print(nums1) # [1,2,3,4] # 从列表的某个位置插入指定元素值 numsIns=[2,3,4] numsIns.insert(0,1) print(numsIns) #[1,2,3,4]
- List 和 String 的相互转换
given_message = "It's a known issue." print("given message original is \'" + given_message +" \'") # convert string to list mes_list = list(given_message) print("List given message is " + str(mes_list)) # convert list to string given_message_after = ''.join(mes_list) print("After converted to string is \'" + given_message_after + " \'")
- 从list取特定字段, 以下操作除了rename以外,其他操作都是生成一个副本,不会改变原list的值。
list1=[1,2,3,4,5,6] print ("list1 is "+ str(list1)) # It will give a alise for list1, but not copy of it. So if one of them is changed, the other one will be changed also. list1_rename = list1 print ("list1_rename is " + str(list1_rename)) list1_rename[0]=9 print("After list1_rename[0]=9, list1_rename is " + str(list1_rename)) print("After list1_rename[0]=9, list1 is " + str(list1)) # Copy a list, so if one of it has been changed, the other will not be changed. list1_copy = list1.copy() print("list1_copy is " + str(list1_copy)) list1_copy[0]= 8 print("After list1_copy[0]= 8, list1_copy is " + str(list1_copy)) print("After list1_copy[0]= 8, list1 is " + str(list1)) # Get value by index print("list 1 is " + str(list1)) print("first value is " + str(list1[0])) print("last value is " + str(list1[-1])) #navigate index get the value from the end. print("Value for every 3 index is " + str(list1[0:5:3])) print("Value from index 3 is " + str(list1[3:])) print("Value until index 4 is " + str(list1[:4])) print("value all for every 2 index is " + str(list1[::2])) # get back ward value print("Backward value for list1 is " + str(list1[::-1])) print("Backward value for target range is " + str(list1[4:1:-1]))
2. Dict:
Dict -- 无序的键/值对集合
- Dict的定义
dict1 = {} dict_person = {'Name':'Steven','Gender':'Male','Occupation':'Researcher','Home Planet':'Betelgeuse Seven'} print("dict1 is "+ str(dict1)) print("dict_person" + str(dict_person))
- Dict的常用操作
dict_person = {'Name':'Steven','Gender':'Male','Occupation':'Researcher','Home Planet':'Betelgeuse Seven'} # Get value by index print("dict_person's name is " + str(dict_person['Name'])) # Add an key and value dict_person['Age']= 33 print("After dict_person['Age']= 33, dict_person's new:value is " + str(dict_person)) # 遍历dict中的所有key for k in dict_person: print(k) # 遍历dict中的所有value for k in dict_person: print(dict_person[k]) # 遍历dict中的所有值 for k in dict_person: print(k +":" + str(dict_person[k]) + "\t") # 遍历dict中的所有值 for k,v in dict_person.items(): print(k +":" + str(dict_person[k]) + "\t") # 遍历dict中的所有值(按顺序显示) for k,v in sorted(dict_person.items()): print(k +":" + str(dict_person[k]) + "\t") # 用字典记录频度, 输出给定字符串中元音出现的次数 count_for_string = 'Hello, hello, how are you' vowels = ['a','e','i','o','u'] found ={} for k in count_for_string: if k in vowels: found.setdefault(k,0) found[k] +=1
- 字典的嵌套(也就是表)
from pprint import pprint person={} person['Mother']={'Name':'Luky','Age':'28','Sex':'Female'} person['Father']={'Name':'Alex','Age':'31','Sex':'Male'} person['Son1']={'Name':'Ethan','Age':'3','Sex':'Male'} person['Son2']={'Name':'Ringo','Age':'1','Sex':'Female'} # 显示整张嵌套列表 for k,v in sorted(person.items()): print(str(k) + ':' + str(v)) for k,v in sorted(person.items()): pprint(str(k) + ':' + str(v)) # 显示嵌套列表的某个值 print(person['Mother']['Age'])
3. Set
Set -- 无序的唯一对象集合(不允许有重复,可以用于去重)
- Set 的定义:
# 定义空字符串 set_a=() print(set_a) # 从列表创建集合 set_volew=set('aaioeuu') print(set_volew)
- Set的常用:
# 并集 volews=set('aeiou') world="Hello,Apple" union_letters=volews.union(set(world)) print(union_letters) # 差集(A-B),这里是volews letter - world letter diff_letters=volews.difference(set(world)) print(diff_letters) # 交集 inst_letters=volews.intersection(set(world)) print(inst_letters)
4. Tuple
Tuple-- 有序的不可变对象集合,其实也是一个一旦创建(并填充数据)就不能改变的列表,这样性能更好。
- 元组的定义
# 元组的定义 vowels_tuple=('a','e','i','o','u') print(vowels_tuple)
- 元组常用操作
# 给元组更新值会报错,因为元组值是不能变的。 # 如vowels_tuple[2]='A' 会报TypeError: 'tuple' object does not support item assignment # 显示某个元素 print(vowels_tuple[0]) # 只有一个对象的元组赋值一定要加','号,否则不会被视为元组. tuple=('python') print(type(tuple)) # <class 'str'> tuple2=('python',) print(type(tuple2)) # <class 'tuple'>
欢迎转载,如需转载请注明出处。