嗨,大家好!我试图调试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__', .... ]
我正在使用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?
我在练习 LeetCode 问题(诚然很简单)时遇到了我的问题。然而,我真正的问题是关于Python的,而不是问题本身的答案。您将在下面看到完整的问题陈述,然后我解释我的方法,将其与实际解决方案进行对比,然后(最后)提出我的问题。
问题:
编写一个函数来删除单链表中的节点(尾部除外),并且只能访问该节点。
给定链表 -- 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 和面向对象编程的新手,有一个非常基本的 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
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) 我想要改组一个数组,但我找到的只是方法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完成一些事情,但我无法在互联网上找到关于此的信息,所以这是我的问题.
有这个示例代码:
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始终是相同的,因此错误必须在其他地方.感谢所有人的帮助,我希望这篇文章可以帮助其他人.
我正在为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) 无论我尝试什么,这个字符串都不会分裂.
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)
我试图做到这一点,以便每次单击按钮时我都可以运行不同的东西。
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 ×10
arrays ×2
list ×2
python-3.x ×2
conventions ×1
immutability ×1
linked-list ×1
mutable ×1
object ×1
oop ×1
pyserial ×1
random ×1
reference ×1
shuffle ×1
split ×1
typeerror ×1