Python 学习 -Day3(2021.2.26)

# Python的数据结构有三种:列表、元组和字典


# 列表(list)
# 初始化:[],[1,3,7],['a','c'],[1,'s','des',256]等
# 1,增加:append(value),extend(list2),insert(i,value)

mylist = [1, 3, 7]
mylist.append('a')
mylist.insert(2, 'fff')
print(mylist)

newList = ['abc', 'kkk', 123]
mylist.extend(newList)
print(mylist)

# 2,删除:pop([i]),remove(value)
# i 可以是负数
# i 超出范围会报out of range错误
# remove只会移除第一个遇到的值
# pop 有返回值,remove没有

mylist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a = mylist.pop()
print(a)
print(mylist)
b = mylist.pop(2)
print(b)
print(mylist)
c = mylist.pop(-1)
print(c)
print(mylist)
newList = ['a', 'b', 'b', 'c', 'd']
k = newList.remove('b')
print(k)
print(newList)

# 3.查询:index(value, [start, [stop]])  
# ---返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError

mylist = [1, 2, 5]
a = mylist.index(2)
print(a)
'b = mylist.index(3)  # 此处会报错,返回以下信息'

# Traceback (most recent call last):
#   File "C:/Users/mengyx3/Desktop/Python learning/learning-python/mengyixin/day3.py", line 44, in <module>
#     b = mylist.index(3)
# ValueError: 3 is not in list

"""4.修改:list没有直接修改对应元素的方法,
   只能先找到目标元素所在位置,然后直接赋值"""

mylist = ['a', 'k', 'm']
myIndex = mylist.index('k')
mylist[myIndex] = 'fff'
print(mylist)

# 5.排序:sort()

mylist = [6, 23, 7, 39, 1, 90]
mylist.sort()
print(mylist)

# 6.反转:reverse()

mylist = ['f', 'm', 'a', 'z']
mylist.reverse()
print(mylist)

# 清空:clear()

mylist = [1, 2, 4]
mylist.clear()
print(mylist)

这个错误通常是由于尝试将一个非标量的数组转换为标量索引引起的。请检查你的代码,确认是否有一个数组被错误地用作索引,或者索引的类型不正确。你可以尝试使用整数索引来访问数组中的元素,或者使用其他适当的索引方式。如果你使用了数组作为索引,你可以尝试使用`np.ravel`或`np.flatten`函数将其展平为一维数组。 在你的代码中,`Month_Observation_Day==1`返回的是一个布尔数组,而`knockout_day`和`knockout_mday_overlock`都是数组。因此,当你尝试将布尔数组用作`knockout_day`的索引时,会出现上述错误。你可以使用`np.where`函数或者布尔索引来实现这个要求。下面是一个使用布尔索引的例子: ```python import numpy as np # 假设 knockout_day 和 Month_Observation_Day 都是一维数组 knockout_day = np.array([10, 20, 30, 40, 50]) Month_Observation_Day = np.array([1, 0, 1, 1, 0]) # 使用布尔索引生成新数组 knockout_mday_overlock knockout_mday_overlock = knockout_day[Month_Observation_Day == 1] print(knockout_mday_overlock) ``` 输出结果为: ``` [10 30 40] ``` 在上面的代码中,`knockout_day[Month_Observation_Day == 1]` 的意思是,使用布尔索引`Month_Observation_Day == 1`,生成一个布尔数组,表示对应位置上 Month_Observation_Day 中的值是否为 1。然后将布尔数组作为索引,从 knockout_day 数组中取出对应位置上的值,生成新的数组 knockout_mday_overlock。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mEngineerHub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值