相关疑难解决方法(0)

Python列表轮换

可能重复:
在python中移动列表的有效方法

我想将Python列表向右或向左旋转任意数量的项目(后者使用否定参数).

像这样的东西:

>>> l = [1,2,3,4]
>>> l.rotate(0)
[1,2,3,4]
>>> l.rotate(1)
[4,1,2,3]
>>> l.rotate(-1)
[2,3,4,1]
>>> l.rotate(4)
[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

怎么可能这样做?

python list rotation

77
推荐指数
4
解决办法
13万
查看次数

Python:TypeError:不可用类型:'list'

我正试图拿一个看起来像这样的文件

AAA x 111
AAB x 111
AAA x 112
AAC x 123
...
Run Code Online (Sandbox Code Playgroud)

并使用字典,以便输出看起来像这样

{AAA: ['111', '112'], AAB: ['111'], AAC: [123], ...}
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的

file = open("filename.txt", "r") 
readline = file.readline().rstrip()
while readline!= "":
    list = []
    list = readline.split(" ")
    j = list.index("x")
    k = list[0:j]
    v = list[j + 1:]
    d = {}
    if k not in d == False:
        d[k] = []
    d[k].append(v)
    readline = file.readline().rstrip()
Run Code Online (Sandbox Code Playgroud)

我一直在接受TypeError: unhashable type: 'list'.我知道字典中的键不能是列表,但我试图将我的值变成列表而不是键.我想知道我是否在某处犯了错误.

python dictionary list typeerror

76
推荐指数
4
解决办法
40万
查看次数

启动迭代Python列表的索引

在Python中迭代列表时设置起始索引的最佳方法是什么.例如,我有一个星期几的列表 - 星期日,星期一,星期二,......星期六 - 但我想从星期一开始迭代列表.这样做的最佳做法是什么?

python iteration

73
推荐指数
7
解决办法
13万
查看次数

在列表中的特定索引处插入元素并返回更新列表

我有这个:

>>> a = [1, 2, 4]
>>> print a
[1, 2, 4]

>>> print a.insert(2, 3)
None

>>> print a
[1, 2, 3, 4]

>>> b = a.insert(3, 6)
>>> print b
None

>>> print a
[1, 2, 3, 6, 4]
Run Code Online (Sandbox Code Playgroud)

无论如何我可以获得更新的列表作为结果,而不是更新原始列表?

python list insert python-2.7

73
推荐指数
3
解决办法
17万
查看次数

Python切片操作方法,我知道Python切片但是如何使用内置切片对象呢?

内置函数的slice用途是什么?如何使用它?
我知道Pythonic切片的直接方式 - l1[start:stop:step].我想知道我是否有切片对象,那我该如何使用呢?

python slice

64
推荐指数
3
解决办法
4万
查看次数

使用切片表示法反转列表

在以下示例中:

foo = ['red', 'white', 'blue', 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

其中:foo[0:6:1]将打印foo中的所有元素.但是,foo[6:0:-1]将省略第1或第0个元素.

>>> foo[6:0:-1]
[3, 2, 1, 'blue', 'white']
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用foo.reverse()或foo [:: - 1]反向打印列表,但我试图理解为什么foo [6:0:-1]不打印整个列表?

python syntax list slice

62
推荐指数
5
解决办法
5万
查看次数

在Python中的给定索引处将一些字符串插入给定字符串

我是Python面临问题的新手:如何在现有字符串中插入一些字段?

例如,假设我从任何包含以下内容的文件中读取了一行:

line = "Name Age Group Class Profession"
Run Code Online (Sandbox Code Playgroud)

现在我必须在Class字段之前的同一行中插入第3个Field(Group)3次.这意味着输出行应该是:

output_line = "Name Age Group Group Group Group Class Profession"
Run Code Online (Sandbox Code Playgroud)

我可以轻松地检索第三个字段(使用split方法),但请告诉我插入字符串的最简单方法?

python string

60
推荐指数
5
解决办法
19万
查看次数

删除列表中一半重复项的有效方法

如果我有一个列表说l = [1, 8, 8, 8, 1, 3, 3, 8]并且保证每个元素出现偶数次,我如何制作一个包含l现在出现n/2次数的所有元素的列表。所以既然1发生了2,它现在应该发生一次。由于8出现4次数,它现在应该出现两次。既然3发生了两次,就应该发生一次。

所以新列表将类似于 k=[1,8,8,3]

执行此操作的最快方法是什么?我list.count()为每个元素都做了,但速度很慢。

python algorithm

60
推荐指数
5
解决办法
1万
查看次数

交换列表中元素的更好方法是什么?

我有一堆看起来像这样的列表:

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

我想交换元素如下:

final_l = [2, 1, 4, 3, 6, 5, 8, 7, 10, 9]
Run Code Online (Sandbox Code Playgroud)

列表的大小可能会有所不同,但它们总是包含偶数个元素.

我是Python的新手,我现在这样做:

l =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
final_l = []
for i in range(0, len(l)/2):
    final_l.append(l[2*i+1])
    final_l.append(l[2*i])
Run Code Online (Sandbox Code Playgroud)

我知道这不是真正的Pythonic,并且想要使用更高效的东西.也许列表理解?

python

50
推荐指数
4
解决办法
1万
查看次数

如何在Python中制作2D数组的副本?

X是一个2D数组.我想要一个Y与数组具有相同值的新变量X.而且,对Y的任何进一步操作都不应该影响X的值.

在我看来这么自然使用y = x.但它不适用于数组.如果我这样做然后改变y,x也会改变.我发现问题可以像这样解决:y = x[:]

但它不适用于2D阵列.例如:

x = [[1,2],[3,4]]
y = x[:]
y[0][0]= 1000
print x
Run Code Online (Sandbox Code Playgroud)

回报[ [1000, 2], [3, 4] ].它还如果我更换于事无补y=x[:]y = x[:][:].

有人知道什么是正确而简单的方法吗?

python arrays copy object variable-assignment

49
推荐指数
3
解决办法
6万
查看次数