程序员

[Python3] 对Str,List,Dict,Tuple的思

2018-02-21  本文已影响0人  Maxmoe

利用春节假刷掉了《Python for Informatics》,书写得非常简洁实用,有一定基础的伪新手可以很快刷完。下面对所学内容进行总结,并且对书中不够翔实的部分进行补充。

Miscellaneous

#示例
type(stuff)
dir(stuff)
help(stuff.capitalize)
for i in range(len(numbers)):
  numbers[i] *= 2 #正确做法

for i in numbers:
  i*=2 #此处i是形参 

String & List & Dictionary & Tuple

1.共同点

#遍历写法Ⅰ
index = 0
while index < len(fruit):
  letter = fruit[index]
  print letter
  index+=1
#遍历写法Ⅱ
for x in fruit:
  print x
四者公有 Str & List Dict & Tuple
len(),in,+,sorted(),reversed() .sort(), .reverse()

*+运算返回运算结果,不改变原对象

2.不同点

3.操作总结

[ String ]
a = 'mom'
b = 'dad'
c = f'I love {a} and {b}!'
print(c)

"...{}...{}".format(a,b): 同理

data  = 'From maxmoe@connect.ust.hk Sat Feb 19 09:22:16 2018'
atops = data.find('@')
sppos = data.find(' ', atops)
host = data[atops+1,sppos]
print(host)
[ List ]

注意list的大部分method都是无返回值的(直接修改原list,与string method不同)

# Creates a list containing 5 lists, each of 8 items, all set to 0
w, h = 8, 5;
Matrix = [[0 for x in range(w)] for y in range(h)] 

Dictionary

Tuple

File

fileObj.close()
fileObj.write(string) :不换行直接写。写完记得close,防止修改丢失。
fileObj.read([count_bytes]) :读取文件。默认全部读取。

from urllib.request import urlopen
word_url = 'www.pigpig.com'
word_list = urlopen(word_url)

urlopen()函数读出的是class 'http.client.HTTPResponse'(file-like object),使用.read()方法之后才会成为byte,按需求可能需要套上str(obj,'utf-8')

fhand = open(url_path) #type(fhand):<class '_io.TextIOWrapper'>

本地文档使用的文档读取函数比urlopen友好许多。不需.read()函数转化成byte格式,遍历直接为string格式,并且直接适用正则表达式。

写在后面

何时使用哪一种序列是一个需要经验的判断。就个人理解,string多数使用在需要输出(print out)的情况;list表现出严格线性,在排序中必不可少,但会存在复杂度为O(n)的情况,对大量数据不友好;dictionary有着key-value的特性,易于增加元素,在频率统计中效果拔群;而与线性代数神似的tuple,同时具有序列和元素的性质,分别可以用于元素顺序改变和充当dict的key。

上一篇 下一篇

猜你喜欢

热点阅读