list1改变指针还是改变值
1、python中相同数据类型的list和string可以直接用“+”相连
“+”只是扩展了list长度,并不是每个元素相加。
lst1 = [‘a‘,‘c‘]
lst2 = [‘d‘,‘g‘]
lst = lst1 + lst2
s1 = "adc"
s2 = "agf"
s3 = s1 + s2
反转列表
Def rev(lst):
lt = []
for i in lst:
lt = [i] + lt
return lt
与java对比
1、java不能list不能直接用“+”相连,java要通过对象的方法来实现 如:
String a[] = { "A", "E", "I" };
String b[] = { "O", "U" };
List list = new ArrayList(Arrays.asList(a));
list.addAll(Arrays.asList(b));
Object[] c = list.toArray();
System.out.println(Arrays.toString(c));
[A, E, I, O, U]
更多参考:
https://www.runoob.com/java/arrays_merge.html
https://www.cjavapy.com/article/290/
2、list的特性
注意索引(index)和切片(slice)的区别
lst = [‘s‘,‘f‘,‘i‘]
ls1 = lst[0]
ls2 = lst[0:1]
type(lst1) --->str,进行索引操作
type(lst2) --->list,进行切片操作
虽然lst1和lst2值相同,但是数据类型不同
3、同时接受list和string数据类型的数据,交换第一个和第二个元素
def swap(ls):
return ls[1:2]+ls[0:1]+ls[2:]
4、当传递数据类型为应用数据类型
myList = list("Isaac")
def swapL(xs) :
return [xs[-1]]+xs[1:-1]+[xs[0]]
def swapLx(lst):
lst = swapL(lst)
swapLx(myList)
myList
结果为: [‘I‘, ‘s‘, ‘a‘, ‘a‘, ‘c‘]
解释:
5、当只是改变参数的具体的值的时候
myList = list("Isaac")
def swapL(xs) :
return [xs[-1]]+xs[1:-1]+[xs[0]]
def swapLx(lst):
lst[:] = swapL(lst)
swapLx(myList)
myList
结果为:
[‘c‘, ‘s‘, ‘a‘, ‘a‘, ‘I‘]
解释:
6、总结
- list数据类型直接赋值是改变其指针,指向新的变量,原始存放的数据并不改变
- list[:]数据直接赋值是改变其值,存放的值直接发生改变
7、更多小技巧
def swapx(lst):
lst[-1],lst[0] = lst[0],lst[-1]
swapx(myList)
myList
结果:
[‘c‘, ‘s‘, ‘a‘, ‘a‘, ‘I‘]
原文地址:https://www.cnblogs.com/Stephanie-boke/p/11711318.html
时间: 2024-10-28 10:20:56