1.实现两个list的相加

方法一:

L1=[1,2,3,4]
L2=[5,6,7,8]
for x in L2:
    L1.append(x)
  1. 不需要新建立一个空的L,直接在L1基础上相加
  2. for x in L2,x 表示的就是元素,而不是索引,因此不可以写成append(L2(x))

方法二:

L1=[1,2,3,4]
L2=[5,6,7,8]
L1.extend(L2)
#L=L1.extend(L2) 错误写法:L1.extend()是一个函数,这个函数没有返回值,因此返回的结果是None,但是L1的集合确实改变了

L=L1.extend(L2) 错误写法:L1.extend()是一个函数,该函数是没有return,没有return的默认返回none--重点!!

2.关于传值和传地址的区别

L1=[1,2,3,4]
L2=[5,6,7,8]
L3=L1 
L3.extend(L2)
#L3只传了地址,只是加了标签,未创建新的地址
L4=[]
for x in L1:
    L4.append(x)
L4.extend(L2)
#L4建了新的地址,在新的地址复制了值
L1=[1, 2, 3, 4, 5, 6, 7, 8]
L2=[5, 6, 7, 8]
L3=[1, 2, 3, 4, 5, 6, 7, 8]
L4=[1, 2, 3, 4, 5, 6, 7, 8, 5, 6, 7, 8]
  1. L3=L1的操作,将L1的地址出传递给了L3,未建立新的地址,所以L1的集合元素也发生了变化 
  2. L4是建立了新的地址,L2将数值传递给了L4,所以L2并没有因为L4的改变而改变

3.将整数变成字符串以及字符串相加

age=30
income=30000.99
print('age:',age)
#这里面的逗号,在python里面默认为空格,但是有的时候我们不需要空格,变换方法
#需要加逗号的原因是,print()这个函数里面,有不同的变量类型语法规定是‘,’
s_age=str(age)
s_income=str(income)
#将整数转变为字符串
print('我的年龄是'+s_age+',我的收入是'+s_income)
#记住:两个字符串的相加方法s=s_age+s_income
#不可以用append or extend之类的
print('我的年龄是'+'s_age+'+',我的收入是'+'s_income')
#将s_age用''括起来之后,就变成了s_age字符串
#结果为age: 30
#我的年龄是30,我的收入是30000.99
#我的年龄是s_age+,我的收入是s_income

4.函数中,关于什么时候必须return什么时候可以不return

【1】必须return

实现L1并不变,但是输出的是变化的L1

#实现L1并不变,但是输出的是变化的L1
def myReplace(L1):
    L2=[]
    for x in L1:
        L2.append(x)
    L2[0]=1
    return L2
# 必须returnL2;不改变input,必须output;如果不returnL2,L2被湮灭

【2】不必return

实现将L1改变

def myReplacenew(L1):
    L1[0]=1
# 没有return,合法;作用change input的东西,没有output
L_input=[7,8,9]
myReplacenew(L_input)

5.可变对象和不可变对象

python注意点(一)--廖雪峰python基础部分

注解:1.str是不可变对象,a.replace是传值,也就是建立了新的地址,将值传了进去,所以生成的b和原来的a不一样

             这种基础的数据类型,str,int都是不可变对象,传的都是值,建立了新地址

python注意点(一)--廖雪峰python基础部分

用代码实现就是:

a='xyz'
b=a
a='Xyz'
print(a)
#Xyz
print(b)
#xyz

 2.而list是复杂的数据类型,传的是地址

 如:上例子中的L1=L0,L1[0]=3,输出结果L0[0]也变成了3,以为L1没有产生新的地址,L0将自己地址复制给了L1

相关文章:

  • 2022-12-23
  • 2021-04-03
  • 2022-12-23
  • 2021-10-12
  • 2021-12-25
  • 2022-12-23
  • 2021-11-19
  • 2021-12-22
猜你喜欢
  • 2021-10-15
  • 2021-04-07
  • 2021-12-12
  • 2021-07-09
  • 2023-03-02
  • 2023-02-19
  • 2021-11-19
相关资源
相似解决方案