python 列表,元组

print()函数查看帮助文件

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

语法格式:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
>>> a=1
>>> b=2
>>> d=[1,2,3]
>>> print(a,b,d)
1 2 [1, 2, 3]
>>> print(a,b,d,sep="$")
1$2$[1, 2, 3]

格式化字符串

%号格式化

name = "Tom"
age = 18
print("His name is %s, his age is %d." % (name, age))
print("His name is " + name + ", his age is " + str(age) +".")

His name is Tom, his age is 18.
His name is Tom, his age is 18.

>>> a=100
>>> "%d%%"%a
'100%'

格式:print(" % " %变量名)

占位符

格式描述
%d有符号的整数ASCII码
%s字符串
%c字符及ASCII码
%o无符号八进制
%x/%X无符号十六进制
%e/%E科学计数法
%f浮点数

format格式化

name = "Tom"
age = 18
print("His name is %s, his age is %d." %(name, age))
print("His name is {}, his age is {}.".format('Tom',18))

Guangzhou,Name: Tom, age: 18
第一个元素是:baidu

[基本语法是通过{}和:来替代以前的%]

格式:print(" …{} ".format(‘tom’/18))

列表

列表使用方括号[],每个元素逗号分隔;

可以储存不同的数据类型数据

数组

特点:有序,可重复,可变类型

创建

#- 创建空列表
li = []
print(type(li))

# - 创建多元素列表
li = [1, 2, 3, "abcd", "City", "College", ["I","love", "python"]]
print((li,type(li)))

# - 强转
sr = "abcd "
li = list(sr)
print((li,type(li)))

<class ‘list’>
([1, 2, 3, ‘abcd’, ‘City’, ‘College’, [‘I’, ‘love’, ‘python’]], <class ‘list’>)
([‘a’, ‘b’, ‘c’, ‘d’, ’ '], <class ‘list’>)

#(1)拼接
li1 = ["I"]
li2 = ["love","python"]
print(li1+li2)
#(2)重复
print(li2*3)
#(3)索引(偏移)[],切片[:],[::]
li = ["C","i","t","y","City","College","Zhejiang",["City","College","Zhejiang"]]
print(len(li))
print((li[0],li[-7]))
print(li[:5])
print(li[::-1])
print(li[7][1])

[‘I’, ‘love’, ‘python’]
[‘love’, ‘python’, ‘love’, ‘python’, ‘love’, ‘python’]
8
(‘C’, ‘i’)
[‘C’, ‘i’, ‘t’, ‘y’, ‘City’]
[[‘City’, ‘College’, ‘Zhejiang’], ‘Zhejiang’, ‘College’, ‘City’, ‘y’, ‘t’, ‘i’, ‘C’]
College

列表的常见操作

li = ["City","College"]
print(id(li))
li1 = ["a","b","c"]
li.append(li1)
print((li,id(li)))
li = ["a","b"]
print(id(li))

1295698911880
([‘City’, ‘College’, [‘a’, ‘b’, ‘c’]], 1295698911880)
1295700185160

#extend()
li = ["City","College"]
#print(id(li))
li1 = ["a","b","c"]
li.extend(li1)
print(li)
#insert(),按照索引添加
li.insert(1,li1)
print(li)

[‘City’, ‘College’, ‘a’, ‘b’, ‘c’]
[‘City’, [‘a’, ‘b’, ‘c’], ‘College’, ‘a’, ‘b’, ‘c’]

#改
li = ['City', ['a', 'b', 'c'], 'College', 'a', 'b', 'c']
li[5] = "6666"
li[2:6] = ["x","y","z"]
print(li[2:6])
#删
# - pop(),返回被删除的元素
# - 若不指定索引,默认删除最后一个元素
# - 删除指定索引对应的元素
li = ["a","b","c","d","e"]
print(li.pop(2))
print(li)
# - remove(),移除第一次遇到的指定元素
li = ["a","b","c","d","e","city","e"]
print(li.remove("e"))
print(li)
# - del
li = ["a","b","c","d","e","city","e"]
del li[5]
print(li)
# - clear()
li.clear()
print(li)

c
[‘a’, ‘b’, ‘d’, ‘e’]
None
[‘a’, ‘b’, ‘c’, ‘d’, ‘city’, ‘e’]
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘e’]
[]

#遍历
#(1)元素遍历
li = ["a","b","c"]
for i in li:
    print(i)
#(2)索引遍历
li = ["a","b","c"]
for i in range(len(li)):
    print(li[i])
#枚举遍历
# enumerate(),对于一个可迭代的/可遍历的对象(如列表、字符串等),
# enumerate() 将其组成一个索引序列,利用它,我们可以同时获得索引和值
li = ["a","b","c"]
for i in enumerate(li,2):
    print(i)
li = ["a","b","c"]
for index,value in enumerate(li[:2],2):
    print(index,value)

(2, ‘a’)
(3, ‘b’)
(4, ‘c’)
2 a
3 b

#堆和栈,用列表实现
# - 计数,count(),查找元素出现的次数
# - 反转,reverse()
li = list("abcd")
print(li)
li.reverse()
print(li)

[‘a’, ‘b’, ‘c’, ‘d’]
[‘d’, ‘c’, ‘b’, ‘a’]

# - 排序,sort()
li = list("abcd")
li.sort()
print(li)
li.sort(reverse=True)
print(li)

[‘a’, ‘b’, ‘c’, ‘d’]
[‘d’, ‘c’, ‘b’, ‘a’]

深浅拷贝

import copy
a = [1,2,3,['a','b']]   #原始对象
b = a   #赋值,传对象的引用
c = copy.copy(a)   #对象拷贝,浅拷贝
                   #也可以表示成 c = a[:]
d = copy.deepcopy(a)   #对象拷贝,深拷贝
a.append(4)   #修改对象a
a[3].append('c')   #修改对象a中['a','b']数组对象
print(a)
print(b)
print(c)
print(d)

浅拷贝只引用了一级对象(里层[复杂子对象]的还是能改)

深拷贝完全独立的两个东西。

列表解析式

li = []
for x in range(10):
    li.append(x)
print(li)
print([x**2 for x in range(10) if x%2==0])

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 4, 16, 36, 64]

#格式:# python# [表达式 for 迭代元素 in 可迭代对象]#

实现原理:

  • 迭代[可迭代对象]中的每一个元素

  • 每迭代一次的结果赋值给对应的迭代元素,在通过表达式运算得到一个新的值

  • 最后所有通过表达式计算的值以一个列表的形式返回

#三目运算符
y=10
x=y+1 if y>10 else y-1
print(x)
带过滤功能格式
​```python
[exp for iter_val in iter if if_condtion]
​```
li = []
for iter_val in iter:
    if if_condition:
        li.append(iter_val)
print(li)
name = ["Tom", "Jack", "Lucy"]
subject = ["python", "java", "c", "c++"]
li = []
for i in name:
    for j in subject:
        li.append([i,j])
print(li)
print([[i,j] for i in name for j in subject])

[[‘Tom’, ‘python’], [‘Tom’, ‘java’], [‘Tom’, ‘c’], [‘Tom’, ‘c++’], [‘Jack’, ‘python’], [‘Jack’, ‘java’], [‘Jack’, ‘c’], [‘Jack’, ‘c++’], [‘Lucy’, ‘python’], [‘Lucy’, ‘java’], [‘Lucy’, ‘c’], [‘Lucy’, ‘c++’]]
[[‘Tom’, ‘python’], [‘Tom’, ‘java’], [‘Tom’, ‘c’], [‘Tom’, ‘c++’], [‘Jack’, ‘python’], [‘Jack’, ‘java’], [‘Jack’, ‘c’], [‘Jack’, ‘c++’], [‘Lucy’, ‘python’], [‘Lucy’, ‘java’], [‘Lucy’, ‘c’], [‘Lucy’, ‘c++’]]

元组

  • 有序
  • 可重复
  • 不可更改

元组的创建

  • 空元组的创建,不能添加元素

  • 单元素组的创建,需要在单元素后面添加逗号

  • 多元素组的创建,包含多种数据类

    (1)拼接

    (2)重复

    (3)索引(偏移) 切片

元组不能增减,可以删。

tp = ("a","b","c")
print("a" in tp)# 最大值、最小值
print(max(tp),min(tp))

True
c a

三种遍历方式

#遍历
tp = ("a","b","c")
for i in tp:
     print(i,end=" ")
print()
#索引遍历
tp = ("a","b","c")
for i in range(len(tp)):
     print(tp[i],end=" ")
print()
# #枚举遍历
tp = ["a","b","c"]
for i in enumerate(tp):
     print(i)

a b c
a b c
(0, ‘a’)
(1, ‘b’)
(2, ‘c’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值