列表List
python中的列表是一个长度可变的数组,我到更愿意和java的list做对比。java中的arraylist的底层实现是数组,达到数组的容量后再次执行add()和remove()后会触发数组拷贝。
1.增
strings=["a","b","c"]
strings.append("d")
strings.insert(0,"s")
print(strings)
结果:
['s', 'a', 'b', 'c', 'd']
2.删
按索引删除:
strings=["a","b","c"]
del strings[0]
print("del()".center(20,"-"))
print(strings)
strings1=["a","b","c"]
a=strings1.pop()
print("pop()".center(20,"-"))
print(a)
print(strings1)
strings2=["a","b","c"]
b=strings2.pop(1)
print("pop(index)".center(20,"-"))
print(b)
print(strings2)
结果
-------del()--------
['b', 'c']
-------pop()--------
c
['a', 'b']
-----pop(index)-----
b
['a', 'c']
如果想要删除返回的值就pop(),其他就del().
按值删除
strings=["a","b","c"]
strings.remove("c")
print(strings)
['a', 'b']
3.改
如果你知道需要修改的值在列表中的索引:
strings=["a","b","c"]
strings[0]="s"
print(strings)
['s', 'b', 'c']
如果知道值:
strings=["a","b","c"]
strings[strings.index("b")]="s"
print(strings)
['a', 's', 'c']
4.查
切片
strings=["a","d","s","h"]
print(strings[1:3])
结果
['d', 's']
排序
strings=["a","d","s","h"]
#根据首字母排序
strings.sort()
print("sort()".center(20,"-"))
print(strings)
strings1=["a","d","s","h"]
#根据首字母反向排序
strings1.sort(reverse=True)
print("sort(reverse)".center(20,"-"))
print(strings1)
strings2=["a","d","s","h"]
#根据首字母临时排序,并不改变列表顺序
print("sorted".center(20,"-"))
print(sorted(strings2))
print(strings2)
结果
-------sort()-------
['a', 'd', 'h', 's']
---sort(reverse)----
['s', 'h', 'd', 'a']
-------sorted()-------
['a', 'd', 'h', 's']
['a', 'd', 's', 'h']
遍历
需要注意的是python根据缩进来判断本行代码与上行代码的关系;
strings=["a","b","c","d"]
for string in strings:
print(string.title())
print("ssr")
A
B
C
D
ssr
巧妙使用range()
#打印出1-100
for num in range(1,101):
print(num)
#打印出1-100的偶数
print(list(range(0,101,2)))
#求100内偶数和
print(sum(list(range(0,101,2))))
结果
2550
不得不说要是java我可能会先遍历,然后判断能被2整除的数放进变量里,python这很方便。
使用for解析列表
squares1=[1,3,5,7,9]
squares2=[v**3 for v in squares1]
print(squares2)
squares3=[value**2 for value in range(1,11)]
print(squares3)
结果:
[1, 27, 125, 343, 729]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]