相关疑难解决方法(0)

'str'对象不支持Python中的项目赋值

我想从字符串中读取一些字符并将其放入其他字符串中(就像我们在C中所做的那样).

所以我的代码如下所示

import string
import re
str = "Hello World"
j = 0
srr = ""
for i in str:
    srr[j] = i #'str' object does not support item assignment 
    j = j + 1
print (srr)
Run Code Online (Sandbox Code Playgroud)

在C中代码可能是

i = j = 0; 
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Python中实现相同的功能?

python string

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

为什么'.join()在Python中比+ =更快?

我能够在线找到一大堆信息(在Stack Overflow和其他方面),关于如何在Python中使用++=连接它是一种非常低效和糟糕的做法.

我似乎无法找到为什么+=这么低效.除了这里提到"它在某些情况下已经优化了20%的改进"(仍然不清楚这些情况是什么),我找不到任何其他信息.

在更技术层面上发生了什么,''.join()优于其他Python串联方法?

python optimization

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

如何为IntelliJ安装Scala插件

我在我的Windows机器上安装了IntelliJ IDEA和scala,但这些没有集成,我无法在IntelliJ中使用scala.如何配置和使用两者?

scala intellij-idea

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

在OPTIONS请求后收到200 OK后,Firefox和Internet Explorer不发送POST请求 - 在Chrome中正常工作

我正在开发一项新服务,我在C++应用程序中内置了一个REST API.C++应用程序侦听特定端口并接收HTTP/S流量,处理发送的内容,然后发回HTTP响应.

我的想法是,我将拥有不同的库,可以在C++ API中发布REST API.我可以从任何地方和任何地方获得请求,因此它可能是另一个软件,例如通过CURL或来自浏览器的POST请求.

API正在工作,直到我正在使用一个与Javascript一起使用的库来通过AJAX帖子发送C++ API请求.

因为我正在从一个网站到另一个域进行AJAX帖子,所以我不得不使用CORS.当我第一次开始设计时,我使用的是Chrome,我遇到了Chrome会发送HTTP OPTIONS请求的问题,我会回复403方法不允许,因为我当时并不知道.我查看了这个并找到了所需的内容,然后让它工作,以便Chrome发送OPTIONS请求,C++应用程序将发送200 OK,然后Chrome将发送实际的AJAX POST.

这完全适用于Chrome,但是,当在Internet Explorer中进行测试时,Firefox会在浏览器中发送OPTIONS,而C++应用程序会发回200 OK,但这两个浏览器都不会发送实际的POST请求.

以下是Chrome和Firefox的请求标头和响应标头.

Chrome请求标头

Request URL: http://192.168.1.96:500/initialise
Request Method: OPTIONS

Remote Address: 192.168.1.96:500
Referrer Policy: no-referrer-when-downgrade
Provisional headers are shown
Access-Control-Request-Headers: authorisation-token,device_id,session_id
Access-Control-Request-Method: POST
Origin: http://localhost
User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36
Run Code Online (Sandbox Code Playgroud)

Chrome响应标头

    Access-Control-Allow-Headers: * 
    Access-Control-Allow-Methods: POST, OPTIONS 
    Access-Control-Allow-Origin: * 
    Access-Control-Expose-Headers: session_id 
    Allow: POST,OPTIONS 
    Content-Length: 0 
    Content-Type: application/json
    Status Code: 200 OK
Run Code Online (Sandbox Code Playgroud)

Firefox请求标头

Accept: text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language: …
Run Code Online (Sandbox Code Playgroud)

api ajax jquery http

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

python元组是不可变的 - 所以为什么我可以添加元素

在阅读以下代码片段时,我已经使用Python已经有一段时间了:

>>> a = (1,2)
>>> a += (3,4)
>>> a
(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

我问自己一个问题:为什么python元组是不可变的,我可以+=在它们上使用运算符(或者,更一般地说,为什么我可以修改元组)?我无法回答自己.

我得到了不变性的想法,虽然它们不像列表那样流行,但元组在python中很有用.但是不可改变并且能够修改长度似乎与我相矛盾......

python tuples immutability

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

python中的可变和不可变字符串

我只是在python中经历可变和不可变的结构.在Python中写道"字符串是不可变的",即我们无法改变它们考虑代码:

str1='Rohit'
str1.replace('R','M')
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

'Mohit'
Run Code Online (Sandbox Code Playgroud)

现在,有人说是变量str1指向字符串'Rohit',在str1.replace()之后它指向'Mohit'考虑以下代码:

'Rohit'.replace('R','M')
Run Code Online (Sandbox Code Playgroud)

这也给了我输出:

'Mohit'
Run Code Online (Sandbox Code Playgroud)

那么'字符串是不可变的'是什么意思?

python string replace immutability mutability

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

Python是不可变的字符串

如果python字符串是不可变的,如何更改如下:

  a = "abc"
  print a
  a = "cde"
  print a
Run Code Online (Sandbox Code Playgroud)

输出:

abc
cde
Run Code Online (Sandbox Code Playgroud)

这实际上是在创建一个新变量并改为指向它吗?

python

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

Python字符串不是不可变的?

直到现在我都相信Python字符串是不可变的但是当我尝试这个时我感到很困惑

>>> a
'hello world !'
>>> id(a)
140521043795728
>>> a+="d"
>>> id(a)
140521043795728
>>> a+="d"
>>> id(a)
140521043795728
>>> a
'hello world !dd'
Run Code Online (Sandbox Code Playgroud)

如果我使用+=运算符,虽然字符串已更改,但它不会更改对象ID.在这种情况下发生了什么?

现在这有点不同?https://ideone.com/eg1SIN

谁能解释一下这里发生了什么?

python python-2.7

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

Python + =运算符是否使字符串可变?

当我尝试使用+ =运算符修改字符串,并使用id()方法来检查对象的标识时,字符串似乎是可变的.有人面对这种奇怪的python行为吗?

a = '123'

print id(a)
# 89806008

a += '1'

print id(a)
# 89245728

a += '1'

print id(a)
# 89245728

print a

# '12311'
Run Code Online (Sandbox Code Playgroud)

使用 a = a + '1'doesnt具有相同的效果,并更改字符串ID.

python string mutability python-2.7

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

重新分配时,python 中的变量会发生什么?

Word='hello world'

Word=Word.upper()
Run Code Online (Sandbox Code Playgroud)

现在在这段代码中,根据我的理解,python 字符串是不可变的,所以当我重新分配实际发生的事情时?有人可以解释python如何处理这种情况。

python python-3.x

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