Python语法基础(二)

字符

#string
s = "qwert"
s[2:4]
s = ['q','w','e','r','t']
s[2:4]

list

#def 方法
def how_many_days(month):
    days_in_month = [0,31,28,31,30,31,30,31,31,30,31,30,31] 
    return days_in_month[month]
    #返回数组[下标]中的数
how_many_days(2)

每个位置里面可存多个元素

dal_number = [['li',18],['zhang',20],['wang',19]]
print(dal_number[0])
print(dal_number[0][1])
print(dal_number[-1])

string转list,使用split()

#string->list
weekdays_str = "Monday,Tuesday,Wednesday,Thursday,Friday"
weekdays = weekdays_str.split(',')
weekdays

删除元素 del

#delete
del weekdays[0]
weekdays

al = ['A','B','C','D','E']
del al[3:]
al

移除元素 remove

#remove
#若list中含有'Friday'则移除
if 'Friday'in weekdays:
    weekdays.remove('Friday')
weekdays

尾部增加元素 append

#append 在list尾部添加元素
weekdays.append('Friday')
weekdays

连接两个list +

#连接
weekend = ['Saturday','Sunday']
weekdays = weekdays + weekend
weekdays

插入元素 insert

#insert 
weekdays.insert(0,'Monday')
weekdays

查找返回下标 

#index
weekdays.index('Monday')

找出并移除 pop

#pop
weekdays.pop()
weekdays

weekdays.pop(0)
weekdays

删除时间对比

#定义100000000个都为5的元素
x = [5] * 100000000
print(x[0])
print(x[99999999])
print(len(x))

#定义一个方法删除指定位置的元素
def delete_elem(x, index):
    del x[index]

timer(delete_elem)(x,-1)
timer(delete_elem)(x,0)
#删除第一个元素的时候更慢,因为要将后面的元素不断移到上一个

排序 sort(),sorted()

nums = [1,4,5,3,2,8]
#sorted() 开辟新空间存储排好序的list
sorted_nums = sorted(nums)
print("nums:",nums,"\nsorted_nums:",sorted_nums)

#sort()不开辟新空间
nums.sort()
nums

排序后变为list,再整合为str

x = 'ACJSDXZ'
y = ''.join(sorted(x))
x
y
type(x)
type(y)

copy

a = [1,2,3]
b = a
#b = a 其实是指向a,随着a变化,b也变化
a
b
a[0] = 2
a
b

#使用copy不会随着a变化而变化
#[:],list()效果等同于copy
c = a.copy()
d = a[:]
e = list(a)
a[0] = 3
a
c
d
e

str无法修改

Tuple 不可增删改

week_tuple = ('Monday','Tuesday')
week_tuple

a=1
b=2
a,b = b,a
a
b
#a,b值交换,实际返回的tuple

Dictionary <key,value>  key--(hash)-->int-->取余-->存放

pizza = {
    "size":"medium",
    "type":"pepperoni",
    "crust":"Thick",
    "deliver":True
}

#检索
pizza['type']

pizza.keys()
pizza.values()
pizza.items()

#删除
del pizza['deliver']

#修改
pizza['size'] = "small"
pizza.items()

#清空
pizza.clear()

set 不支持重复元素,只有key

even_set = {2,4,6,8}
even_set

operations

num_set = {3,6,9,12}

#两个都包含的
num_set & even_set

#两个所有元素
num_set | even_set

#前面有后面没有的
num_set - even_set

#异或
num_set ^ even_set

Convert into list

#str->list
list('abcde')
#tuple->list
list((1,2,3,4))
#dictionary.key->list
list({'name':'Ed','employer':'Oracle'})
#dictionary.value->list
list({'name':'Ed','employer':'Oracle'}.values())
#set->list
list({5,6,7,8})

convert into dictionary

dict(['ab','cd','ef'])

#将两串字符zip成dictionary
s1 = 'qwert'
s2 = 'asdfg'
list(zip(s1,s2))

#与上面相反
d = list(zip(s1,s2))
s3, s4 = zip(*d)
s3
s4

 

循环

weekdays =['Monday','Tuesday','Wednesday','Thursday','Friday']

#while
i=0
while i < len(weekdays):
    print(weekdays[i])
    i =  i+1

#for,range(自动从0开始),通过index访问
for i in range(len(weekdays)):
    print(weekdays[i])

#in,打印每一列的每个元素
for day in weekdays:
    print(day)

#1是规定index从1开始
for key,day in enumerate(weekdays,1):
    print(str(key)+" "+day)

List Comprehensions

num_list = []
for i in range(0,10):
    num_list.append(i)
num_list

#range(0,10)->list
num_list = list(range(0,10))
num_list

num_list = [i for i in range(0,10,2)]
num_list

 random

import random
#随机生成十个10以内的数字
num_list = random.sample(range(10),10)
num_list
target = 5
将大于5和小于5分成两个list
list1 = [x for x in num_list if x < target]
list2 = [x for x in num_list if x >= target]
list1
list2

 

猜你喜欢

转载自blog.csdn.net/mxxxkuku/article/details/95601625
今日推荐