相关疑难解决方法(0)

Python:从String的末尾修剪下划线

嗨,大家好!我试图调试someones代码,我发现了问题.程序循环遍历一个字符串数组并计算某些结束.问题是这些字符串中的一些_以此结束,因此计数出错.我想使用正则表达式,但我没有足够的经验.有人能帮助我吗?

我想遍历数组和每个字符串检查它是否以_('s)结束并修剪所有这些_以将它们再次放入数组中!

更新

谢谢你的rstrip建议!我曾尝试编写一个适用于我的数据的代码,但还没有运气......

data_trimmed = []
        for x in data:
            x.rstrip('_')
            data_trimmed.append(x)

        print(data_trimmed)
Run Code Online (Sandbox Code Playgroud)

但这仍然会回归: ['Anna__67_______', 'Dyogo_3__', 'Kiki_P1_', 'BEN_40001__', .... ]

python arrays

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

当变量被分配不同的值时,为什么变量的地址会在python中发生变化?

我正在使用repl.itpython3 - 这是我所做的一系列作业

  x34=20
   x34
=> 20
   hex(id(x34))
=> '0x7fdb5d318960'
   x34=30
   hex(id(x34))
=> '0x7fdb5d318aa0'
   hex(id(x34))
=> '0x7fdb5d318aa0'
   x34
=> 30
   hex(id(x34))
=> '0x7fdb5d318aa0'
   x34=20
   hex(id(x34))
=> '0x7fdb5d318960'
Run Code Online (Sandbox Code Playgroud)

为什么x34当我重新赋值时变量的地址会改变30

python

4
推荐指数
2
解决办法
729
查看次数

在Python中“就地”修改链表节点

我在练习 LeetCode 问题(诚然很简单)时遇到了我的问题。然而,我真正的问题是关于Python的,而不是问题本身的答案。您将在下面看到完整的问题陈述,然后我解释我的方法,将其与实际解决方案进行对比,然后(最后)提出我的问题。


LeetCode问题:删除链表中的节点

问题:

编写一个函数来删除单链表中的节点(尾部除外),并且只能访问该节点。

给定链表 -- head = [4,5,1,9],如下所示:

图像

示例1:

Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
Explanation: You are given the second node with value 5, the linked list should become 4 -> 1 -> 9 after calling your function.
Run Code Online (Sandbox Code Playgroud)

示例2:

Input: head = [4,5,1,9], node = 1
Output: [4,5,9]
Explanation: You are given the third node with value 1, the linked list should become 4 -> 5 -> 9 after calling your function. …
Run Code Online (Sandbox Code Playgroud)

python linked-list singly-linked-list

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

Python 方法:修改原始对象与返回不同的对象

我是 Python 和面向对象编程的新手,有一个非常基本的 101 问题:

我看到一些方法返回一个修改过的对象,并保留原来的:

In: x="hello"
In: x.upper()
Out: 'HELLO'
In: x
Out: 'hello'
Run Code Online (Sandbox Code Playgroud)

我看到其他方法修改和覆盖原始对象:

In: y=[1,2,3]
In: y.pop(0)
Out: 1
In: y
Out: [2, 3]
Run Code Online (Sandbox Code Playgroud)

这两个是常态吗?有没有办法知道我正在为给定的类和方法处理哪种情况?

python functional-programming conventions mutable immutability

3
推荐指数
1
解决办法
1521
查看次数

为什么在python中共享列表而不是变量(类级别)

class abc :
    x = 10
    list = []   
    def __init__(self):
        self.a = 30      
        self.b = 40

a = abc()
b = abc()
a.x = a.x + 1
print a.x
print b.x
a.list.append(1)
print b.list   

Output :
10
11
[1]
Run Code Online (Sandbox Code Playgroud)

所以我们看到它x不是跨对象共享的a,b而是list共享的.有人可以解释这种行为吗?

所以它的答案似乎在于列表是可变的objs而数字不是:

class abc :
   x = 10
   m_list = []

   def __init__(self):
       self.a = 30      
       self.b = 40



a = abc()
b = abc()
print id(a.x)
a.x = a.x + 1 …
Run Code Online (Sandbox Code Playgroud)

python oop

2
推荐指数
1
解决办法
160
查看次数

Python:随机播放并创建一个新数组

我想要改组一个数组,但我找到的只是方法random.shuffle(x),从最好的方式来随机化Python中的字符串列表

我能做点什么吗

import random
rectangle = [(0,0),(0,1),(1,1),(1,0)]
# I want something like
# disorderd_rectangle = rectangle.shuffle
Run Code Online (Sandbox Code Playgroud)

现在我只能逃脱

disorderd_rectangle = rectangle
random.shuffle(disorderd_rectangle)
print(disorderd_rectangle)
print(rectangle)
Run Code Online (Sandbox Code Playgroud)

但它回来了

[(1, 1), (1, 0), (0, 1), (0, 0)]
[(1, 1), (1, 0), (0, 1), (0, 0)]
Run Code Online (Sandbox Code Playgroud)

所以original array也改变了.如何在array不改变原始状态的情况下创建另一个洗牌?

python random shuffle list

2
推荐指数
2
解决办法
5038
查看次数

如何在不复制对象的情况下将var添加到Python列表中?

我正在尝试用Python完成一些事情,但我无法在互联网上找到关于此的信息,所以这是我的问题.

有这个示例代码:

a = 5
b = [a]
Run Code Online (Sandbox Code Playgroud)

我需要b [0]作为a的指针引用.目前,如果我这样做

b[0] = 7
Run Code Online (Sandbox Code Playgroud)

a.var仍然是5,如果我将值设置为ab [0],则a保持不变.

我想知道在Python中是否有任何方法可以将Object存储在数组中而不复制它,所以如果我修改了一个,我也会修改另一个.

编辑一个

我想更清楚地说明我想要完成的事情,所以也许我能找到真正的答案.

我有一个自定义类

class Foo(object):
    def __init__(self):
        self.var = 7
Run Code Online (Sandbox Code Playgroud)

我还有一个这样的列表:

myList = [Foo()]
Run Code Online (Sandbox Code Playgroud)

我真正的问题是:

在代码的某个地方,我需要做以下任务:

self.foo = myList[0]
Run Code Online (Sandbox Code Playgroud)

然后当我尝试访问这个foo var时,我注意到它从未从原始实例更新.所以基本上这就是我需要的.

编辑二

所有答案都是对的.在我的赋值的每一步使用id(var)我可以验证Object始终是相同的,因此错误必须在其他地方.感谢所有人的帮助,我希望这篇文章可以帮助其他人.

python reference list object

1
推荐指数
1
解决办法
119
查看次数

函数不更新全局变量

我正在为compSci类编写一个模拟Bunko游戏的程序,但是我在scoreCalc修改全局变量时遇到了问题playerScore.游戏使玩家对抗计算机,所以我希望能够使用一个函数来确定分数,并且只是通过一个参数来分别增加正确的分数.但是,该功能不会保存playerScore多个播放的值,每轮重置为0.我是新手,所以我确定这个问题很可能是微不足道的,但我感谢所有人的帮助!

dieList = []
sixCount = 0
playerScore = 0


def rollDice():    
    global sixCount
    sixCount = 0
    dieList.clear()

    die1 = random.randint(1,6)
    die2 = random.randint(1,6)
    die3 = random.randint(1,6)

    dieList.append(die1)
    dieList.append(die2)
    dieList.append(die3)

    print(dieList)

    for x in dieList:
        if x == 6:
            sixCount += 1
    print("sixCount:", sixCount)
    return


def scoreCalc(x):
    if sixCount == 1:
        x += 1
    elif sixCount == 2:
        x += 5
    elif sixCount == 3:
        x += 21
    return x


print()
print("Player's turn!")
print('*' …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
601
查看次数

Python Split String不起作用

无论我尝试什么,这个字符串都不会分裂.

def funktion():
    ser = serial.Serial('COM5',115200)
    b = str("Das ist ein Test")
    a = str(ser.readline().decode())
    b.split(' ')
    a.split('s')
    print (a)
    print (b)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python arrays split pyserial python-3.x

0
推荐指数
1
解决办法
83
查看次数

恰好需要 1 个位置参数(给定 0 个)

我试图做到这一点,以便每次单击按钮时我都可以运行不同的东西。

Counter = 0

def B_C(Counter):
    Counter = Counter + 1
    if counter == 1:
        print("1")
    elif counter == 2:
        print("2")
    else:
         if counter == 3:
             Print("3")
Run Code Online (Sandbox Code Playgroud)

但我得到

TypeError: B_C() takes exactly 1 positional argument (0 given)
Run Code Online (Sandbox Code Playgroud)

python typeerror python-3.x

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