为什么这代代码没有对李斯特 str1 = input() list1 = list(str1) for i in list1: i =str((int(i)+ 3)%9) print(list1)
时间: 2024-04-16 17:28:41 浏览: 18
这段代码没有改变列表 `list1` 中的元素,是因为在循环中你使用的是变量 `i` ,它仅仅是一个迭代器,赋值操作并不会修改列表元素本身。每次迭代,`i` 都指向列表中的一个元素,但是对 `i` 的修改并不会反映到列表中。
如果你想要修改列表中的元素,可以通过索引直接访问和修改元素。以下是修正后的代码:
```python
str1 = input()
list1 = list(str1)
for i in range(len(list1)):
list1[i] = str((int(list1[i]) + 3) % 9)
print(list1)
```
在这个修正后的代码中,我们使用了 `range(len(list1))` 来生成索引,然后通过索引访问和修改列表元素 `list1[i]`。这样就能够正确地将列表中的每个元素都修改为 `(int(list1[i]) + 3) % 9` 的结果。
相关问题
java 反射获取 李斯特、
抱歉,您的问题不是很清楚。请问您是想要使用 Java 反射获取 List 类型的对象吗?如果是的话,可以使用以下代码:
```java
// 假设您已经有一个 List 类型的对象 list
Class<?> listClass = list.getClass();
System.out.println(listClass.getName());
```
这段代码会输出 list 对象的类型名称,例如 java.util.ArrayList。如果您想要获取 list 对象中的元素,可以使用以下代码:
```java
for (Object obj : list) {
Class<?> objClass = obj.getClass();
System.out.println(objClass.getName());
}
```
这段代码会遍历 list 对象中的所有元素,并输出它们的类型名称。
python中使用openpyxl遍历表格,将每一行中的第四列内容和第三列的内容以字符串形式拼接起来,添加到李斯特
您好!针对您的问题,可以使用openpyxl中的iter_rows()方法来遍历表格的每一行,然后获取每一行中第三列和第四列的内容进行拼接,最后将拼接后的字符串添加到一个列表中。下面是具体的代码实现:
```python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 获取当前活跃的工作表
sheet = wb.active
# 创建一个空列表来存储拼接后的字符串
result_list = []
# 遍历每一行,获取第三列和第四列的内容进行拼接
for row in sheet.iter_rows(min_row=2, min_col=1, max_col=4):
col3 = row[2].value
col4 = row[3].value
result_str = str(col3) + str(col4)
# 将拼接后的字符串添加到列表中
result_list.append(result_str)
# 输出拼接后的字符串列表
print(result_list)
```
上述代码中,min_row=2表示从第二行开始遍历,因为第一行通常是表头,不需要进行处理。min_col=1表示从第一列开始遍历,因为我们需要获取第三列和第四列的内容。max_col=4表示遍历到第四列结束。最后,将拼接后的字符串添加到result_list中,并输出列表的内容。