java list 改变变量的值_3、list改变指针还是改变值

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]

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']

解释:

687de16ac1af11cd0b3621cef206ddaf.png

45412a3fd75c66bd7faf96c523d3ab93.png

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']

解释:

2db04fe7b63104bc3fd68bbc700bc817.png

6、总结

list数据类型直接赋值是改变其指针,指向新的变量,原始存放的数据并不改变

list[:]数据直接赋值是改变其值,存放的值直接发生改变

7、更多小技巧

def swapx(lst):

lst[-1],lst[0] = lst[0],lst[-1]

swapx(myList)

myList

结果:

['c', 's', 'a', 'a', 'I']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值