社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Jonas

Jonas 最近回复了
6 年前
回复了 Jonas 创建的主题 » 如何在python列表中只替换以某个字母开头的文本?

试试这个:

for i in range(0, len(list)):
    if list[i].startswith('F'):
        list[i] = 'qwe'
    elif list[i].startswith('H'):
        list[i] = 'chronic'
    elif list[i].startswith('S'):
        list[i] = 'liable'
    else list[i].startswith('J'):
        list[i] = 'priority'

等。。。

6 年前
回复了 Jonas 创建的主题 » python-pyqt5如何将gui的复选框视为单独的对象?

什么时候? checkOne 选中并单击 checkTwo ,输入 selectBooks . 在该函数中,输入 if-else -第一个条件是 self.checkOne.isChecked() ,仍然是 True ,所以你 print(self.checkOne.text(), "1") ,尽管您刚刚单击 支票二 .

你可以给每个人都打个槽 QCheckBox (选项1),否则您需要不知何故地告诉插槽 QCheckbox 刚刚被点击(见选项2)。

你还必须使用 stateChanged 信号。

方案1

from PyQt5 import QtWidgets, QtCore, QtGui
import sys

class window_gui(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.checkOne = QtWidgets.QCheckBox('one')
        self.checkTwo = QtWidgets.QCheckBox('two')
        self.vlayout = QtWidgets.QVBoxLayout()
        self.vlayout.addWidget(self.checkOne)
        self.vlayout.addWidget(self.checkTwo)
        self.setLayout(self.vlayout)
        self.checkOne.stateChanged.connect(self.selectBooks1)
        self.checkTwo.stateChanged.connect(self.selectBooks2)

    def selectBooks1(self, toggle):
        if toggle == QtCore.Qt.Checked:
            print('checked 1')
        else:
            print('unchecked 1')

    def selectBooks2(self, toggle):
        if toggle == QtCore.Qt.Checked:
            print('checked 2')
        else:
            print('unchecked 2')

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = window_gui()
    w.show()
    app.exec()

选项2( check out 'lambda' expressions ):

from PyQt5 import QtWidgets, QtCore, QtGui
import sys

class window_gui(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.checkOne = QtWidgets.QCheckBox('one')
        self.checkTwo = QtWidgets.QCheckBox('two')
        self.vlayout = QtWidgets.QVBoxLayout()
        self.vlayout.addWidget(self.checkOne)
        self.vlayout.addWidget(self.checkTwo)
        self.setLayout(self.vlayout)
        self.checkOne.stateChanged.connect(lambda state=self.checkOne.isChecked(), no=1: self.selectBooks(state, no))
        self.checkTwo.stateChanged.connect(lambda state=self.checkTwo.isChecked(), no=2: self.selectBooks(state, no))

    def selectBooks(self, toggle, no):
        if toggle == QtCore.Qt.Checked:
            print('checked '+str(no))
        else:
            print('unchecked '+str(no))

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = window_gui()
    w.show()
    app.exec()
s = 'abcbcdiawuhdawpdijsamksndaadhlmwmdnaowdihasoooandalw'
longest = ''
current = ''
for idx, item in enumerate(s):
    if idx == 0 or item > s[idx-1]:
        current = current + item
    if idx > 0 and item <= s[idx-1]:
        current = ''
    if len(current)>len(longest):
        longest = current
print(longest)

输出:

dhlmw

为了你的理解 'b'>'a' True , 'a'>'b' False

编辑:

对于最长连续子串:

s = 'asdefvbrrfqrstuvwxffvd'
abc = 'abcdefghijklmnopqrstuvwxyz'
longest = ''
current = ''
for idx, item in enumerate(s):
    if idx == 0 or abc.index(item) - abc.index(s[idx-1]) == 1:
        current = current + item
    else:
        current = item
    if len(current)>len(longest):
        longest = current
print(longest)

输出:

qrstuvwx